Je recherche le meilleur moyen d'effectuer des mises à niveau régulières et continues pour mon infrastructure.
En règle générale, cela implique de le faire sur chaque hôte, un à la fois:
sudo yum update -y && sudo reboot
Mais, je frappe les limites de ce qui est évolutif.
Je souhaite redémarrer un seul nœud à la fois dans chacun de mes rôles, afin que, par exemple, je ne supprime pas tous mes équilibreurs de charge ou membres de cluster DB en même temps.
Idéalement, je voudrais faire quelque chose comme:
for role in $(< roles_list.txt) ; do
mco package update_all_and_reboot \
--batch 1 --batch-sleep 90 \
-C $role -F environment=test
done
Mais cela ne semble pas tout à fait exister. Je ne sais pas si l'utilisation de l'agent "shell" est la meilleure approche non plus?
mco shell run 'yum update -y && reboot' \
--batch 1 --batch-sleep 90
Suis-je en train de regarder le mauvais type d'outil pour ce travail? Y a-t-il quelque chose de mieux pour gérer ce genre de redémarrages continus, mais que je peux en quelque sorte me connecter avec mes rôles assignés à Puppet, afin que je puisse être à l'aise de ne pas supprimer quoi que ce soit d'important à la fois, mais que je peux toujours faire des mises à jour et des redémarrages parallèles?
la source
Réponses:
Configuration
Déployer
et
sur les deux hôtes, à savoir
test-server1
ettest-server2
.Prestations de service
Redémarrez mcollective sur les deux services:
et
Commandes
Exécutez les commandes suivantes sur le nœud du serveur mcollective:
L'hôte
test-server2
écoute:Redémarrez le
test-server2
:Le
test-server2
redémarre:et il a été redémarré:
Notez qu'il est également possible d'arrêter un hôte:
Code d'origine
/usr/libexec/mcollective/mcollective/agent/power.rb
/usr/libexec/mcollective/mcollective/agent/power.ddl
/usr/share/ruby/vendor_ruby/mcollective/application/power.rb
Code modifié
/usr/libexec/mcollective/mcollective/agent/power.ddl
/usr/libexec/mcollective/mcollective/agent/power.rb
Commander
la source