Mam ponad 200 komputerów, które mogą świadczyć usługi IPMI . Serwery są produkowane przez kilka różnych firm (SuperMicro, Dell itp.), A istnieje 6-7 modeli BMC od około 5 różnych dostawców, a każdy model ma swoje osobliwości.
Do tej pory konfigurowaliśmy BMC za pomocą kombinacji DHCP i ręcznie konfigurując każdy BMC. Ręczna konfiguracja może być wykonana przy użyciu rozruchowego dysku CD-ROM, konfiguracji z systemu BIOS (jeśli jest obsługiwany), z systemu operacyjnego hosta za pomocą narzędzia takiego jak ipmitool , freeipmi itp. Lub zdalnie za pomocą ipmitool, jeśli możemy ustalić adres sieciowy urządzenie.
Ta ręczna konfiguracja jest jednak dość nużąca. W niektórych przypadkach chcemy zmienić ustawienie globalnie na wszystkich BMC, co wymaga, aby administrator uruchomił polecenie na dziesiątki skrzynek. Ponieważ BMC są dostarczane przez różnych dostawców, a każdy model BMC może mieć własne osobliwości, to samo polecenie nie zawsze działa na wszystkich BMC.
Czy są jakieś narzędzia, które pozwalają mi masowo konfigurować BMC na dziesiątkach pudeł? Powiedz, że chcę zapytać o parametr na dziesiątkach różnych BMC lub zmienić hasło, wyłączyć dostęp HTTP do interfejsu WebUI lub wyłączyć niesławną dziurę w zabezpieczeniach bez szyfru .
Punkty bonusowe za dowolne narzędzie, które pozwoliłoby mi zaktualizować oprogramowanie układowe BMC, co jest niezbędne do ograniczenia kilku luk w zabezpieczeniach
źródło
Odpowiedzi:
Prawdopodobnie skorzystałbym z Ansible . Jest to bardzo prosty silnik do zarządzania / zarządzania konfiguracją, który jest o wiele łatwiejszy do rozpoczęcia niż Puppet (Puppet był moim głównym wyborem, ale nie zawsze teraz, odkrywszy Ansible).
Zaletą Ansible jest to, że komunikuje się bezpośrednio przez SSH, dzięki czemu można zacząć korzystać z istniejących poświadczeń SSH i przepływu pracy.
Jeśli obecnie konfigurujesz BMC za pomocą ipmitool, możesz zrobić coś takiego:
Zdefiniowanie pliku Hosts - Mówi ansibl które hosty w BMC grupy (w tym przypadku) i które do uruchomienia na rzeczy.
I tak dalej ... Możesz również używać nazw hostów w tym pliku, o ile można je rozwiązać.
Następnie utwórz „poradnik”, który jest zestawem poleceń uruchamianych na każdym hoście w grupie hostów. Chcesz mieć taki układ katalogów z góry na dół:
Poradnik ma role , które są małymi sekcjami konfiguracji, które można rozbić i użyć ponownie.
Więc stworzyłbym plik o nazwie
bmc.yml
(konfiguracja All Ansible jest w plikach YAML)Następnie w środku
roles/bmcconfig/tasks/main.yml
możesz zacząć wyświetlać listę poleceń, które mają być uruchamiane na każdym hoście, aby komunikować się z ipmi.Po uruchomieniu podręcznika z
ansible-playbook -i hosts bmc.yml
poleceniami wymienionymitasks/main.yml
dla każdej roli zostaną wykonane w kolejności odgórnej na każdym hoście znalezionym w grupiebmc
hostów whosts
group_vars/all
jest interesującym plikiem, pozwala zdefiniować pary klucz-wartość zmiennych i wartości, które mogą być używane w twoich podręcznikach.więc możesz zdefiniować coś takiego
w
group_vars/all
wyniku czego możesz mieć coś takiego:w podręczniku.
Możesz znaleźć znacznie więcej informacji na temat korzystania z „modułów” - składników Ansible, które pozwalają ci robić różne rzeczy, jak pisać własne: D itd. Na stronach dokumentacji Ansible .
źródło
Napisałem małe narzędzie pythonowe do uruchamiania poleceń na naszych 1000 maszynach (i ich BMC, Drac, ILO i IMM)
To, co zrobiłem, to napisanie struktury python o nazwie vsc-manage, w której mogę uruchamiać polecenia, które są albo wysyłane na serwer, albo do bmc, a następnie konfigurować, jaki typ maszyny potrzebuje jakiego polecenia.
Mam kilka klas, które łączą kombinację tych poleceń,
Tak więc dla maszyn z imm będzie ssh do imm i uruchomił się
power off
(w sposób oczekiwany przez skrypt)W przypadku naszych podwozi typu imb będzie to działało na podwoziu
W przypadku niektórych drellów firmy Dell uruchomi to w systemie operacyjnym (węzła głównego)
W przypadku naszych nowszych systemów HP, które wykonują ipmi (i widzę coraz więcej w tych dniach), uruchomi to na urządzeniu głównym:
lub nowsze systemy Dell potrzeba
ipmitool -I open
, może trzeba grać z protokołem kawałka.Dla ustawień nie zawartych w standardzie ipmi zaimplementowałem niektóre rzeczy z DMTF SMASH CLP , np. Włączenie diody lokalizatora:
Wszystko to w narzędziu wiersza poleceń, które można uruchomić z naszych laptopów, które połączy się z właściwym węzłem głównym, uruchom właściwe polecenie dla prawego węzła i zwróci dane wyjściowe, z dodatkową listą błędów, jeśli takie istnieją (na podstawie wyjście na stderr i / lub kod wyjścia)
Okazało się to bardzo przydatne, a dodanie obsługi nowej klasy sprzętu jest teraz stosunkowo łatwe (dzięki temu, że większość dostawców w pełni obsługuje teraz ipmi i DMTFSMASHCLP)
Nie nadaje się to do początkowej konfiguracji (potrzebuje bmc, aby mieć unikalny adres IP i poprawną bramę, ale tego właśnie nasi dostawcy muszą nam dostarczyć przy dostawie), ale może zrobić prawie wszystko inne (również uruchamiać dowolne polecenia na hoście działającym System i automatially harmonogram przestojów w icinga / Nagios po ponownym uruchomieniu węzła i / lub uznać 1000 hostów i usług w icinga / Nagios na raz)
Aktualizacja oprogramowania BMC i dodanie obsługi naszych przełączników to nierozwiązane problemy, które są planowane.
AKTUALIZACJA
Ponieważ przynajmniej niektórzy ludzie wydawali się zainteresowani, podarowałem mu dzisiaj ostatnią polską wersję i otworzyłem ją na https://github.com/hpcugent/vsc-manage
Chociaż jest to bardzo ukierunkowane na nasz własny przepływ pracy (quattor i / lub pbs), mam nadzieję, że przynajmniej może być interesujące.
źródło
Dziwi mnie, że nikt nie wspomniał o MAAS ( http://maas.io/ ), który robi dokładnie to, czego szukasz. Może automatycznie konfigurować BMC i zarządzać nimi, a ponadto wdrożyć dowolny system operacyjny na węzłach zarejestrowanych w systemie. Ma internetowy interfejs użytkownika i interfejs API RESTful i jest przeznaczony do integracji z dowolnym systemem automatyzacji.
Kiedy maszyna PXE uruchamia się po raz pierwszy, MAAS używa wbudowanego IPMI do automatycznego konfigurowania poświadczeń. Od tego momentu możesz łatwo zdalnie uruchamiać i wyłączać maszynę.
Aby uzyskać więcej informacji, zapoznaj się z dokumentacją rodzajów zasilania MAAS BMC, która pokazuje, jak ręcznie skonfigurować BMC dla dowolnego węzła zarejestrowanego w MAAS.
źródło