Я ищу лучший способ регулярно обновлять свою инфраструктуру.
Как правило, это включает в себя выполнение этого на каждом хосте, по одному:
sudo yum update -y && sudo reboot
Но я достигаю пределов того, чтобы быть масштабируемым.
Я хочу перезагружать только один узел за раз в каждой из моих ролей, чтобы, скажем, я не снимал все свои балансировщики нагрузки или элементы кластера БД одновременно.
В идеале я бы хотел сделать что-то вроде:
for role in $(< roles_list.txt) ; do
mco package update_all_and_reboot \
--batch 1 --batch-sleep 90 \
-C $role -F environment=test
done
Но этого, похоже, не существует. Я не уверен, что использование агента-оболочки является лучшим подходом, либо?
mco shell run 'yum update -y && reboot' \
--batch 1 --batch-sleep 90
Я просто смотрю на не тот инструмент для этой работы? Есть ли что-то лучшее для управления подобными повторяющимися перезагрузками, но что я могу каким-то образом связать себя с назначенными мне кукольными ролями, чтобы мне было удобно, если я не убираю ничего важного сразу, но я все еще могу делать параллельные обновления и перезагрузки?
источник
Ответы:
конфигурация
Развертывание
а также
на обоих хостах, т.е.
test-server1
иtest-server2
.Сервисы
Перезапустите mcollective на обеих службах:
а также
команды
Выполните следующие команды на узле сервера mcollective:
Хозяин
test-server2
слушает:Перезагрузка
test-server2
:test-server2
Перезагружается:и это было перезагружено:
Обратите внимание, что также возможно отключить хост:
Оригинальный код
/usr/libexec/mcollective/mcollective/agent/power.rb
/usr/libexec/mcollective/mcollective/agent/power.ddl
/usr/share/ruby/vendor_ruby/mcollective/application/power.rb
Модифицированный код
/usr/libexec/mcollective/mcollective/agent/power.ddl
/usr/libexec/mcollective/mcollective/agent/power.rb
команда
источник