Π‘ΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ
ΠΠ° ΡΠ΅ΡΠ²Π΅ΡΠ΅ Ρ master-node ViQube ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ inotify ΠΈ sshpass, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
sudo apt-get update && sudo apt-get install -y inotify-tools sshpass
ΠΠ° ΡΠ΅ΡΠ²Π΅ΡΠ΅ Ρ master-node ViQube Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ slave-node ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΊΡΠΈΠΏΡΡ Ρ ΡΠ΅Π»ΠΎΠΌ Π½ΠΈΠΆΠ΅, Π³Π΄Π΅ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ <node_ip>, <user>, <password> Π½Π° Π½ΡΠΆΠ½ΡΠ΅:
ΠΠ»Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ½Π°ΠΏΡΠΎΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΊΡΠΈΠΏΡ viqube_sync_snapshot_slave_1.sh
#!/bin/bash LOGIN=<user> PASSWORD=<password> IP=<node_ip> while true; do inotifywait -r --event close_write --event create --event move --exclude '(.+)[\.](snapshot)[\.](.+)' /docker-volume/viqube/snapshots sshpass -p "${PASSWORD}" rsync -azvPr /docker-volume/viqube/snapshots/auto.snapshot ${LOGIN}@${IP}:/tmp/viqube/ sshpass -p "${PASSWORD}" ssh ${LOGIN}@${IP} "echo ${PASSWORD} | sudo -S cp /tmp/viqube/auto.snapshot /docker-volume/viqube/snapshots/auto.snapshot" # Restart ViQube echo ${PASSWORD} | sshpass -p "${PASSWORD}" ssh -tt ${LOGIN}@${IP} PASSWORD=${PASSWORD} 'sudo docker rm -f $(sudo -S docker ps --filter "name=viqube" -q)' done
ΠΠ»Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ½ΡΠΈΠ³Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΊΡΠΈΠΏΡ viqube_sync_config_slave_1.sh
#!/bin/bash LOGIN=<user> PASSWORD=<password> IP=<node_ip> while true; do inotifywait -r --event close_write --event create --event move /docker-volume/viqube/config sshpass -p "${PASSWORD}" rsync -azvPr /docker-volume/viqube/config/config.ini ${LOGIN}@${IP}:/tmp/viqube/ sshpass -p "${PASSWORD}" ssh ${LOGIN}@${IP} "echo ${PASSWORD} | sudo -S cp /tmp/viqube/config.ini /docker-volume/viqube/config/config.ini" # Restart ViQube echo ${PASSWORD} | sshpass -p "${PASSWORD}" ssh -tt ${LOGIN}@${IP} PASSWORD=${PASSWORD} 'sudo docker rm -f $(sudo -S docker ps --filter "name=viqube" -q)' done
ΠΠ°ΡΡ ΠΏΡΠ°Π²Π° Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅:
chmod +x viqube_sync_snapshot_slave_1.sh chmod +x viqube_sync_config_slave_1.sh
ΠΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ Π΄Π»Ρ ssh ΠΎΡ Π²ΡΠ΅Ρ slave ΠΌΠ°ΡΠΈΠ½ Π½Π° master. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ:
sudo ssh <user>@<ip> echo 1
ΠΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΊΡΠΈΠΏΡΡ ΠΈΠ· ΡΠ°Π³Π° 3 Π² ΠΊΡΠΎΠ½ Π½Π° ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΡ ΠΌΠ°ΡΠΈΠ½Ρ.
sudo crontab -e
ΠΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΡΠΎΡΠΊΠΈ, Π³Π΄Π΅ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΏΡΡΡ Π΄ΠΎ ΡΠΊΡΠΈΠΏΡΠ° <path>:
SHELL=/bin/bash @reboot <path>/viqube_sync_snapshot_slave_1.sh @reboot <path>/viqube_sync_config_slave_1.sh
ΠΠ»Ρ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
@reboot <path>/viqube_sync_snapshot_slave_1.sh >> /var/log/viqube_sync.log 2>&1 @reboot <path>/viqube_sync_config_slave_1.sh >> /var/log/viqube_sync.log 2>&1
ΠΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΌΠ°ΡΠΈΠ½Ρ.
sudo reboot