Самый быстрый способ остановить и запустить узлы Кассандры перед обновлением - PullRequest
0 голосов
/ 22 февраля 2019

Как лучше всего остановить узлы Cassandra перед обновлениями приложений и баз данных, а затем запустить их?В настоящее время я прохожу виртуальную машину каждого узла и останавливаю их с помощью команды sudo service cassandra stop, а затем, после обновления, я делаю то же самое, просто запускаю их с помощью команды sudo service cassandra start.С несколькими узлами все в порядке, но у меня есть 20 узлов на сервере, и для этого требуется некоторое время.

Есть ли лучший / более эффективный способ сделать это?

1 Ответ

0 голосов
/ 23 февраля 2019

Есть много способов сделать это - использовать цикл for в оболочке + ssh, использовать pssh и т. Д. Вам просто нужно помнить, что лучше выполнить повторный перезапуск отдельного пользователя.Узлы Кассандры, поэтому вам нужно подождать, пока Кассандра снова запустится.Что-то вроде:

for host in `cat your-host-list.txt`; do
   ssh user@${host} 'sudo service cassandra stop && your_update_command && sudo service cassandra start
done

или немного проще с pssh:

pssh -l user -h your-host-list.txt -p 1 -t 0 'sudo service cassandra stop && your_update_command && sudo service cassandra start
  • -p 1 предписывает выполнять только одну команду параллельно
  • t 0 поручает дождаться исполнения без таймаута
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...