/
Бинхронизация Π΄Π°Π½Π½Ρ‹Ρ…

Бинхронизация Π΄Π°Π½Π½Ρ‹Ρ…

  1. На сСрвСрС с master-node ViQube ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ inotify ΠΈ sshpass, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

    sudo apt-get update && sudo apt-get install -y inotify-tools sshpass
  2. На сСрвСрС с master-node ViQube для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ slave-node ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ скрипты с Ρ‚Π΅Π»ΠΎΠΌ Π½ΠΈΠΆΠ΅, Π³Π΄Π΅ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ <node_ip>, <user>, <password> Π½Π° Π½ΡƒΠΆΠ½Ρ‹Π΅:

    1. Для синхронизации ΡΠ½Π°ΠΏΡˆΠΎΡ‚Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, скрипт 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
    2. Для синхронизации ΠΊΠΎΠ½Ρ„ΠΈΠ³Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, скрипт 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
  3. Π”Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²Π° Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅:

    chmod +x viqube_sync_snapshot_slave_1.sh
    chmod +x viqube_sync_config_slave_1.sh
  4. Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ сСртификаты для ssh ΠΎΡ‚ всСх slave машин Π½Π° master. НапримСр, это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ:

    sudo ssh <user>@<ip> echo 1
  5. Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ скрипты ΠΈΠ· шага 3 Π² ΠΊΡ€ΠΎΠ½ Π½Π° ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΌΠ°ΡˆΠΈΠ½Ρ‹.

    1. sudo crontab -e
    2. Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ строчки, Π³Π΄Π΅ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡƒΡ‚ΡŒ Π΄ΠΎ скрипта <path>:

      SHELL=/bin/bash
      
      @reboot <path>/viqube_sync_snapshot_slave_1.sh
      @reboot <path>/viqube_sync_config_slave_1.sh
    3. Для логирования ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

      @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
    4. ΠŸΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΌΠ°ΡˆΠΈΠ½Ρƒ.

      sudo reboot

Related content