Dalam blog ini, kami akan mengambil skrip kemas kini pelayan Ansible yang ringkas dan mengubahnya menjadi Sistem Kemas Kini Berasaskan Risiko. Di sini, pelayan dengan risiko paling rendah ditambal terlebih dahulu, memberi kami peluang untuk menguji secara menyeluruh sebelum beralih ke sistem keutamaan yang lebih tinggi.
Sos rahsia? Sediakan kumpulan yang jelas untuk membuat aliran ini lancar. Tetapi persoalan sebenar ialah: bolehkah kami melakukan ini tanpa perubahan besar pada skrip Ansible kami dari kali terakhir? Jom ketahui!
Fail hos adalah nadi kepada perubahan ini. Dalam catatan terakhir, kami menggunakan fail statik yang dikumpulkan mengikut jenis pelayan. Kini, kami menambah lapisan kedua pengelompokan mengikut tahap risiko-yang memang menambahkan sedikit kerumitan pada fail hos.
Tetapi inilah kelainannya: bagaimana jika fail hos kami boleh dijana secara dinamik daripada sumber yang lebih generik? Itu akan memastikan perkara itu fleksibel dan menyelamatkan kita daripada penyuntingan fail yang tidak berkesudahan!
Ansible boleh berfungsi dengan fail hos yang dicipta secara dinamik, yang memberi kita cara yang lebih fleksibel untuk menjejaki pelayan. Dalam contoh ini, kami akan menggunakan fail Excel untuk mengatur hos kami.
Contoh hos_data.xlsx Struktur:
Host Name | Server Environment | Ansible User | Server Type | DNS | Notes |
---|---|---|---|---|---|
mint | dev | richard | desktop | desktop.sebostech.LOCAL | Mint desk top |
ansible_node | dev | ansible_admin | Ansible | ansible_node.sebostech.local | Development server; Only updates monthly |
clone_master | dev | ansible_admin | clone | clone.dev.sebostech.local | Development server; Only updates monthly |
mele | staging | richard | nas | nas.stage.sebostech.local | Testing server; Used for application testing |
pbs | production | root | backup server | pbs.prod.sebostech.local | Testing server; Used for application testing |
pve | production | root | hypervisor | api.stage.sebostech.local | Testing server; Used for application testing |
samba | production | richard | nas | nas.prod.sebostech.local | Critical server; Requires daily backup |
firewall | production | richard | firewall | firewall.sebostech.local | Critical server; Requires daily backup |
Kebanyakan jabatan IT sudah mempunyai senarai pelayan yang disimpan dalam fail Excel, jadi mengapa tidak menggunakannya dengan baik? Pendekatan ini memudahkan untuk memastikan hos Ansible kami teratur dan terkini tanpa kemas kini manual yang berterusan.
Tetapi bagaimanakah Ansible menggunakan fail Excel? Mari kita mendalami cara kita boleh mengubah data ini menjadi inventori dinamik yang boleh digunakan!
## This will run agains all host ansible-playbook -i dynamic_inventory.py playbook.yml
Anda juga boleh menggunakan pilihan pembolehubah persekitaran untuk menyasarkan kumpulan tertentu, berdasarkan Persekitaran Pelayan, Jenis Pelayan atau gabungan kedua-duanya:
## Just production SERVER_ENVIRONMENT="production" ansible-playbook -i dynamic_inventory.py playbook.yml --limit "high:web" ## Just nas SERVER_TYPE="nas" ansible-playbook -i dynamic_inventory.py playbook.yml --limit "high:web" ## production nas SERVER_ENVIRONMENT="production" SERVER_TYPE="nas" ansible-playbook -i dynamic_inventory.py playbook.yml --limit "high:web"
Perlukan kumpulan baharu? Hanya kemas kini fail Excel dan laraskan skrip Python dengan sewajarnya-semudah itu!
Untuk melihat kod Python, lihat di sini.
Apabila saya mula menggunakan Ansible, fail hos adalah pilihan saya. Tetapi apabila saya menambah lebih banyak pelayan, terutamanya yang mempunyai dwi peranan, fail itu menjadi semakin kompleks.
Bolehkah anda menggunakan fail hos tradisional untuk mencapai ini? Pasti-tetapi terdapat beberapa kelemahan.
Dengan fail hos, anda mungkin akan mendapat entri pendua atau pembolehubah tambahan untuk menangkap semua struktur yang anda perlukan. Fail Excel, sebaliknya, menyediakan struktur yang bersih dan mudah diselenggara yang memastikan perkara tetap teratur.
Dalam persekitaran korporat, ada kemungkinan besar sudah ada sekurang-kurangnya satu fail Excel dengan senarai pelayan, jadi mengapa tidak mengambil kesempatan daripadanya?
Jika anda mahu saya menyelami lebih mendalam kod Python, beritahu saya!
Atas ialah kandungan terperinci Kemas Kini Berasaskan Risiko Dinamik Menggunakan Python dan Excel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!