Sağlayabilir 200'den fazla bilgisayar var IPMI Hizmetler. Sunucular birkaç farklı şirket tarafından üretilmiştir (SuperMicro, Dell, vb.) Ve yaklaşık 5 farklı satıcıdan 6-7 BMC modeli vardır ve her modelin kendine özgü özellikleri vardır.
Şimdiye kadar, BMC'leri bir DHCP kombinasyonu kullanarak ve her BMC'yi manuel olarak yapılandırarak yapılandırdık. Manuel yapılandırma, önyüklenebilir bir CD-ROM, BIOS'dan yapılandırma (Destekleniyorsa), ana bilgisayar işletim sisteminden ipmitool, freeipmiCihazın ağ adresini belirleyebilirsek, vb. veya ipmitool kullanarak uzaktan.
Ancak, bu manuel yapılandırma oldukça sıkıcı. Bazı durumlarda, tüm BMC'lerde bir ayarı global olarak değiştirmek istiyoruz; bu da bir yöneticinin düzinelerce kutuya karşı bir komut çalıştırmasını gerektirir. BMC'ler farklı satıcılar tarafından sağlandığından ve her BMC modelinin kendi kendine özgü özellikleri olabileceğinden, aynı komut her zaman tüm BMC'lerde çalışmaz.
BMC'leri düzinelerce kutu üzerinde toplu olarak yapılandırmamı sağlayan herhangi bir yardımcı program var mı? Düzinelerce farklı BMC'de bir parametre sorgulamak veya şifreyi değiştirmek, WebUI'ye HTTP erişimini devre dışı bırakmak veya devre dışı bırakmak istediğinizi varsayalım. rezil şifre sıfır güvenlik deliği.
Azaltmak için gerekli olan BMC ürün bilgisini güncellememi sağlayacak herhangi bir program için bonus puanları çeşitli güvenlik açıkları
Muhtemelen kullanırdım yanıtlayıcı '. Başlamak için çok daha basit olan çok basit bir konfigürasyon yönetimi / orkestrasyon motoru Kukla'dan (Kukla, bunun için benim tercihim olsa da, her zaman değil, Ansible'ı keşfettim).
Ansible'ın avantajı, doğrudan SSH üzerinden iletişim kurmasıdır. Bu nedenle, yalnızca mevcut SSH kimlik bilgilerinizi ve iş akışınızı kullanmaya başlayabilirsiniz.
BMC'lerinizi ipmitool ile yapılandırıyorsanız, aşağıdaki gibi bir şey yapabilirsiniz:
Bir Hosts dosyası tanımla - Bu, hangi hostların bmc grubu (bu durumda) ve üzerinde çalışılacak olan.
[bmc]
192.168.1.100
192.168.1.101
192.168.1.102
Ve bunun gibi ... Ayrıca, çözülebilir oldukları sürece bu dosyadaki ana bilgisayar adlarını da kullanabilirsiniz.
Ardından, bir ana makine grubunda her bir ana bilgisayarda çalışacak komut kümesi olan bir "oynatma kitabı" oluşturun.
Bu yukarıdan aşağı dizin düzenine sahip olmak istersiniz:
ansible/
playbooks/
bmc.yml
roles/
bmcconfig/
files/
handlers/
main.yml
tasks/
main.yml
templates/
group_vars/
all
Bir oyun kitabı var RollerAyrılıp yıkabileceğiniz ve yeniden yapılandırabileceğiniz küçük yapılandırma bölümleri.
Ben de bir dosya oluşturdum.
bmc.yml (Tüm Ansible yapılandırması YAML dosyalarındadır)
---
- name: Configure BMC on the hosts
hosts: bmc
user: root
roles:
- bmcconfig
Sonra içeride
roles/bmcconfig/tasks/main.yml ipmi ile iletişim kurmak için her bir ana bilgisayarda çalıştırılacak komutları listelemeye başlayabilirsiniz.
---
- name: Install ipmitool
apt: pkg=ipmitool state=installed
- name: Run ipmitool config
shell: ipmitool -your -options -go -here
Playbook'u çalıştırdığınızda
ansible-playbook -i hosts bmc.yml listelenen komutlar
tasks/main.yml Her rol için, her bir ana bilgisayarda bulunan aşağı-yukarı sırada yürütülür.
bmc ana bilgisayar grubu
hosts
group_vars/all ilginç bir dosyadır, oyun kitaplarınızda kullanılabilecek anahtar / değer çiftleri ve değer çiftlerini tanımlamanızı sağlar.
böylece böyle bir şey tanımlayabilirsin
ipmitool_password: $512315Adb
senin içinde
group_vars/all ve sonuç olarak, şöyle bir şey elde edebileceksiniz:
shell: ipmitool -your -options -go -here --password=${ipmitool_password}
oyun kitabında.
"Modülleri" nasıl kullanacağınız hakkında daha fazla bilgi edinebilirsiniz - Ansible bileşenleri size, sizin nasıl yazılacağınıza izin veren bileşenleri: D, vb. Ansible Belgeleme Sayfaları.
1000 makinemizde (ve onların bmc, drac, ilo ve imm's) komutlarını çalıştırmak için küçük bir python aracı yazdım.
Yaptığım şey adında bir python-framework yazıyordu vsc-yönetmek Burada sunucuya veya bmc'ye gönderilen komutları çalıştırabilir ve daha sonra hangi makinenin hangi komutu gerektirdiğine karar verdim.
Bu komutların bir karışımını birleştiren birkaç dersim var.
Yani, makineler imm ölüme ssh edecek ve koşacak
power off (Beklenen bir senaryoda)
Bizim için imb blade şasibu şasi üzerinde çalışacak
power -%(command)s -T system:blade[%(blade)s]
Bazı Dell Dracs Bunu bir ana düğümde (os) çalıştıracak
idracadm -r %(hostname)s -u root -p '%(password)s' serveraction %(command)s
Daha yeni hp sistemlerimiz için IPMI (ve bugünlerde gittikçe daha çok görüyorum) bunu ustada yürütecek:
ipmitool -I lanplus -H %(hostname)s -U %(user)s -P '%(password)s' chassis power %(command)s
veya daha yeni dell sistemleri gerekir
ipmitool -I openprotokol ile biraz oynamanız gerekebilir.
İpmi standardına dahil olmayan ayarlar için bazı şeyleri
DMTF SMASH CLP, Örneğin. Konumlandırıcıyı açmak için:
start /system1/led1
Tüm bunlar, dizüstü bilgisayarlarımızdan çalıştırılabilen, doğru ana düğüme bağlanacak komut satırı aracında, doğru düğüm için doğru komutu çalıştırın ve çıktıyı, varsa ek bir hata listesiyle birlikte döndürün. stderr ve / veya exitcode çıkışı
Bu çok kullanışlı olduğu kanıtlanmıştır ve yeni bir donanım sınıfı için destek eklenmesi artık nispeten kolaydır (çoğu tedarikçinin şu anda ipmi ve DMTFSMASHCLP'yi tam olarak desteklemesi sayesinde)
Bu, başlangıç yapılandırması için uygun değildir (benzersiz bir ip ve doğru ağ geçidine sahip olması için bmc'ye ihtiyaç duyar, ancak bu, satıcılarımızın teslimatta bize sağlaması gereken şeydir) ancak bunu yapabilir
hemen hemen her şey (ayrıca, ana işletim sistemindeki keyfi komutları çalıştırır ve kesinti süresini otomatik olarak zamanlar. icinga / nagios Bir düğümü yeniden başlattığınızda ve / veya bir kerede icinga / nagios'ta 1000 ana bilgisayarı ve hizmeti kabul ettiğinizde)
Bmc ürün yazılımının güncellenmesi ve anahtarlarımız için destek eklenmesi planlanan önemli konulardır.
GÜNCELLEŞTİRME
En azından bazı insanlar ilgilerini çekmiş gibi göründüğü için bugün ona bir son cila verdim ve bunu açık olarak
https://github.com/hpcugent/vsc-manage
Bu, kendi iş akışımıza (quattor ve / veya pbs) doğru çok fazla hedeflenmişken, umarım en azından ilginç olabilir.
Şaşkınım, kimse MAAS'tan bahsetmedi (http://maas.io/), tam olarak aradığınız şeyi yapar. BMC'leri otomatik olarak yapılandırabilir ve yönetebilir, ayrıca sisteme dahil ettiğiniz düğümlere herhangi bir OS'yi dağıtabilirsiniz. Bir Web UI'sine ve RESTful API'ye sahiptir ve herhangi bir otomasyon sistemi ile entegre olacak şekilde tasarlanmıştır.
İlk kez bir makine PXE-boot'ları olduğunda, MAAS sizin için otomatik olarak kimlik bilgilerini ayarlamak için bant içi IPMI kullanır. Bu noktadan itibaren, kolayca bir makineyi uzaktan açıp kapatabilirsiniz.
Daha fazla bilgi için, kontrol edin MAAS BMC Güç Tipleri dokümantasyonu MAAS'a kayıtlı herhangi bir düğüm için BMC'yi manuel olarak nasıl yapılandıracağınızı gösterir.