TCP Keepalive ändern
echo 'tcp_keepalive_idle: 60' > /etc/salt/minion.d/tcp.conf
echo 'tcp_keepalive_cnt: 2' >> /etc/salt/minion.d/tcp.conf
echo 'tcp_keepalive_intvl: 60' >> /etc/salt/minion.d/tcp.conf
anschließendsystemctl restart salt-minion
Sie können die genannten Änderungen auch per Salt-State ausrollen.
#
# Fine-tune tcp setting of salt minion to keep the connection
# alive even with low bandwidth and high latency
#
/etc/salt/minion.d/tcp.conf:
file.managed:
- contents: |
tcp_keepalive_idle: 60
tcp_keepalive_cnt: 2
tcp_keepalive_intvl: 60
salt-minion:
service.running:
- enable: True
- watch:
- file: /etc/salt/minion.d/tcp.conf
Heartbeat vom Master senden
/etc/cron.d/salt-heartbeat
*/5 * * * * root salt -G 'kernel:linux' cmd.run "date +\%s>/tmp/salt.time"
Minion neu starten
#!/bin/bash
LOG=/var/log/salt-keepalive.log
if [ $(( $(date +%s) - $(cat /tmp/salt.time) )) -gt 900 ];then
echo "$(date) - Connection seems to be broken">$LOG
service salt-minion stop
service salt-minion start
else
echo "$(date) - Connection seems to be OK">$LOG
fi
Heartbeat per Salt verteilen
/srv/salt/linux/heartbeat/init.sls
copy-script:
file.managed:
- name: /usr/local/sbin/minion-restart.sh
- source: salt://linux/heartbeat/minion-restart.sh
- user: root
- mode: 700
create-cron:
cron.present:
- name: /usr/local/sbin/minion-restart.sh
- user: root
- minute: '*/5'
- require:
- copy-script