Saya mencari cara terbaik untuk melakukan upgrade bergulir rutin untuk infrastruktur saya.
Biasanya, ini melibatkan melakukan ini pada setiap host, satu per satu:
sudo yum update -y && sudo reboot
Tapi, saya mencapai batas itu menjadi scalable.
Saya hanya ingin me-reboot satu node pada satu waktu dalam setiap peran saya, sehingga, katakanlah, saya tidak mencatat semua load balancers, atau anggota cluster DB, pada saat yang sama.
Idealnya, saya ingin melakukan sesuatu seperti:
for role in $(< roles_list.txt) ; do
mco package update_all_and_reboot \
--batch 1 --batch-sleep 90 \
-C $role -F environment=test
done
Tapi, itu sepertinya tidak ada. Saya tidak yakin apakah menggunakan agen "shell" adalah pendekatan terbaik, baik?
mco shell run 'yum update -y && reboot' \
--batch 1 --batch-sleep 90
Apakah saya hanya melihat alat yang salah untuk pekerjaan ini? Apakah ada sesuatu yang lebih baik untuk mengelola reboot bergulir semacam ini, tetapi saya entah bagaimana dapat terhubung dengan peran yang saya tetapkan untuk Wayang, sehingga saya bisa merasa nyaman bahwa saya tidak mencatat sesuatu yang penting sekaligus, tetapi saya masih bisa melakukan beberapa pembaruan paralel & reboot?
sumber
Jawaban:
Konfigurasi
Menyebarkan
dan
pada kedua host, yaitu
test-server1
dantest-server2
.Jasa
Mulai ulang mcollective di kedua layanan:
dan
Perintah
Jalankan perintah berikut pada node server mcollective:
Tuan rumah
test-server2
sedang mendengarkan:Mulai ulang
test-server2
:Ini
test-server2
me-reboot:dan telah di-reboot:
Perhatikan bahwa dimungkinkan untuk mematikan host juga:
Kode asli
/usr/libexec/mcollective/mcollective/agent/power.rb
/usr/libexec/mcollective/mcollective/agent/power.ddl
/usr/share/ruby/vendor_ruby/mcollective/application/power.rb
Kode yang dimodifikasi
/usr/libexec/mcollective/mcollective/agent/power.ddl
/usr/libexec/mcollective/mcollective/agent/power.rb
Perintah
sumber