Saya memiliki lebih dari 200 komputer yang dapat menyediakan layanan IPMI . Server diproduksi oleh beberapa perusahaan yang berbeda (SuperMicro, Dell, dll.), Dan terdapat 6-7 model BMC dari sekitar 5 vendor yang berbeda, dan masing-masing model memiliki kekhasan tersendiri.
Sejauh ini kami telah mengkonfigurasi BMC dengan menggunakan kombinasi DHCP dan secara manual mengkonfigurasi masing-masing BMC. Konfigurasi manual mungkin dilakukan menggunakan CD-ROM bootable, konfigurasi dari BIOS (Jika didukung), dari sistem operasi host dengan utilitas seperti ipmitool , freeipmi , dll. Atau menggunakan ipmitool dari jarak jauh jika kita dapat menentukan alamat jaringan dari alat.
Namun, konfigurasi manual ini agak membosankan. Dalam beberapa kasus kami ingin mengubah pengaturan secara global pada semua BMC, yang mengharuskan administrator menjalankan perintah terhadap puluhan kotak. Karena BMC disediakan oleh vendor yang berbeda dan masing-masing model BMC mungkin memiliki keistimewaan sendiri, perintah yang sama tidak selalu berfungsi pada semua BMC.
Apakah ada utilitas yang memungkinkan saya untuk mengonfigurasi BMC secara massal di banyak kotak? Katakanlah saya ingin menanyakan parameter pada lusinan BMC yang berbeda, atau mengubah kata sandi, menonaktifkan akses HTTP ke WebUI atau menonaktifkan lubang keamanan nol sandi sandi yang terkenal itu .
Poin bonus untuk utilitas apa pun yang memungkinkan saya untuk memperbarui firmware BMC, yang diperlukan untuk mengurangi beberapa kerentanan keamanan
sumber
Jawaban:
Saya mungkin akan menggunakan Ansible . Ini adalah konfigurasi yang sangat sederhana manajemen / mesin orkestrasi yang jauh lebih mudah untuk memulai daripada Wayang (Wayang dulu pilihan saya untuk ini, tetapi tidak selalu sekarang, setelah menemukan Ansible).
Manfaat dari Ansible di sini adalah bahwa ia berkomunikasi langsung melalui SSH, sehingga Anda dapat mulai menggunakan kredensial dan alur kerja SSH yang ada saja.
Jika saat ini Anda mengkonfigurasi BMC Anda dengan ipmitool, Anda dapat melakukan sesuatu seperti:
Definisikan file Host - Ini memberi tahu Ansible host mana yang ada dalam grup bmc (dalam hal ini), dan yang menjalankannya.
Dan seterusnya ... Anda juga dapat menggunakan nama host di file itu, selama mereka dapat diatasi.
Kemudian buat "buku pedoman", yang merupakan sekumpulan perintah untuk dijalankan pada setiap host dalam grup host. Anda ingin memiliki tata letak direktori top-down seperti ini:
Playbook memiliki Peran , yang merupakan bagian kecil dari konfigurasi yang dapat Anda uraikan dan gunakan kembali.
Jadi saya akan membuat file bernama
bmc.yml
(Semua konfigurasi di file YAML)Kemudian di dalam
roles/bmcconfig/tasks/main.yml
Anda dapat mulai membuat daftar perintah yang harus dijalankan pada setiap host, untuk berkomunikasi dengan ipmi.Saat Anda menjalankan playbook, dengan
ansible-playbook -i hosts bmc.yml
perintah yang tercantum ditasks/main.yml
untuk setiap peran akan dieksekusi dalam urutan top-down pada setiap host yang ditemukan dibmc
hostgroup dihosts
group_vars/all
adalah file yang menarik, ini memungkinkan Anda untuk menentukan pasangan kunci-nilai variabel dan nilai-nilai yang dapat digunakan dalam buku pedoman Anda.jadi Anda bisa mendefinisikan sesuatu seperti
di Anda
group_vars/all
dan sebagai hasilnya, Anda akan dapat memiliki sesuatu seperti:di buku pedoman.
Anda dapat menemukan informasi lebih lanjut tentang cara menggunakan "modul" - komponen Ansible yang memungkinkan Anda melakukan hal-hal, cara menulis sendiri: D, dan sebagainya di Halaman Dokumentasi yang Mungkin .
sumber
Saya telah menulis alat python kecil untuk menjalankan perintah pada 1000 mesin kami, (dan bmc, drac, ilo dan imm)
Apa yang saya lakukan adalah menulis kerangka python yang disebut vsc-manage di mana saya dapat menjalankan perintah yang dikirim ke server, atau bmc, dan kemudian mengkonfigurasi jenis mesin apa yang membutuhkan perintah apa.
Saya memiliki beberapa kelas yang menggabungkan campuran dari perintah-perintah ini,
Jadi untuk mesin dengan imm ia akan ssh ke imm, dan dijalankan
power off
(dengan cara seperti script-harapan)Untuk sasis blade bilah kami , ia akan menjalankan ini pada sasis
Untuk beberapa drells dell ia akan menjalankan ini pada os (dari master node)
Untuk sistem hp baru kami yang melakukan ipmi (dan saya melihat semakin banyak hari ini) itu akan menjalankan ini pada master:
atau sistem dell baru perlu
ipmitool -I open
, Anda mungkin perlu bermain dengan protokol sedikit.Untuk pengaturan yang tidak termasuk dalam standar ipmi, saya telah mengimplementasikan beberapa hal dari DMTF SMASH CLP , mis. Menyalakan locator led on:
Semua ini dalam alat baris perintah yang dapat dijalankan dari laptop kita, yang akan terhubung ke master node yang tepat, menjalankan perintah yang tepat untuk node yang tepat, dan mengembalikan output, dengan daftar kesalahan tambahan jika ada (berdasarkan output pada stderr dan / atau kode sandi)
Ini telah terbukti sangat berguna, dan menambahkan dukungan untuk kelas perangkat keras yang baru relatif mudah sekarang (Berkat kenyataan bahwa sebagian besar vendor sepenuhnya mendukung ipmi dan DMTFSMASHCLP sekarang)
Ini tidak cocok untuk konfigurasi awal (perlu bmc untuk memiliki ip unik dan gateway yang benar, tetapi ini adalah apa yang vendor kami butuhkan untuk memasok kami dengan pengiriman) tetapi dapat melakukan hampir apa pun (juga menjalankan perintah sewenang-wenang pada operasi host sistem, dan secara otomatis menjadwalkan waktu henti di icinga / nagios ketika Anda mem-boot ulang sebuah node, dan / atau mengakui 1000 host dan layanan di icinga / nagios sekaligus)
Memperbarui firmware bmc dan menambahkan dukungan untuk sakelar kami adalah masalah luar biasa yang direncanakan.
MEMPERBARUI
Karena setidaknya beberapa orang tampaknya tertarik, saya telah memberinya polesan terakhir hari ini, dan buka sumber ini di https://github.com/hpcugent/vsc-manage
Sementara ini sangat ditargetkan pada alur kerja kita sendiri (quattor dan / atau pbs) saya harap setidaknya bisa menarik.
sumber
Saya terkejut tidak ada yang menyebutkan MAAS ( http://maas.io/ ), yang melakukan persis seperti yang Anda cari. Ia dapat mengkonfigurasi dan mengelola BMC secara otomatis, dan selain itu menyebarkan OS apa pun ke node yang telah Anda daftarkan ke dalam sistem. Ini memiliki UI Web dan API TENANG, dan dirancang untuk berintegrasi dengan sistem otomasi apa pun.
Ketika mesin PXE-boot untuk pertama kalinya, MAAS menggunakan IPMI in-band untuk mengatur kredensial secara otomatis untuk Anda. Sejak saat itu dan seterusnya, Anda dapat dengan mudah melakukan booting jarak jauh dan mematikan mesin.
Untuk lebih jelasnya, periksa dokumentasi Tipe Daya MAAS BMC yang menunjukkan cara mengkonfigurasi BMC secara manual untuk setiap simpul yang terdaftar di MAAS.
sumber