Obecnie, gdzie pracuję, musimy zarządzać częścią naszej farmy serwerów, która obejmuje nieco ponad 300 serwerów Linux. Obejmuje to głównie HP Proliants, a następnie IBM 3850, niektóre bloki IBM, VMware ESX i niektóre KVM dla naszych wewnętrznych serwerów zarządzania.
szewc
Patrzyliśmy na szewca, ale problem polegał na tym, że szewc jest bardzo specyficzny dla RHEL / Red Hat. Musimy co najmniej wspierać RHEL i SLES, a Ubuntu będzie następny.
marionetka
Zastanawialiśmy się nad marionetką, ale później zdecydowaliśmy się tego nie robić, ponieważ zależy to od Ruby, co oznacza, że aktualizacja Ruby może potencjalnie uszkodzić nasz system zarządzania.
gorący drut
Hotwire jest tym, z czego korzystamy (opracowaliśmy wewnętrznie, ale jest oprogramowaniem typu open source) i robiliśmy to przez ostatnie kilka lat. Po pierwsze inwentaryzuje systemy, które mają zostać zbudowane, co oznacza inwentaryzację centrum danych, szafy, sprzętu, systemu operacyjnego, sieci itp., A po drugie wykonuje szybkie budowanie i wdrażanie. Po zbudowaniu systemu auto-inwentarz Hotwire utrzymuje ekwipunek w synchronizacji, a cfengine je utrzymuje. Hotwire wie o sprzęcie serwerowym, rozmawiając z danymi SMBIOS / DMI w Biosie przez python-dmidecode .
Punkty bonusowe polegają na tym, że łączy on proces inwentaryzacji i kompilacji w jeden, więc jest mniej do zarządzania, a funkcja inwentaryzacji na żywo jest świetna, ponieważ wiemy, że coś jest nie tak.
Wady polegają na tym, że interfejs użytkownika nadal wymaga dopracowania, a tu i tam pojawiają się błędy, ale rozwój jest wciąż gorący, a zgłaszane błędy są naprawiane stosunkowo szybko.
cfengine
Używamy cfengine, ponieważ poza nią i marionetką nie ma nic więcej. W rzeczywistości jest to dobre narzędzie, ale „dobre” tylko w zależności od tego, jak dobre są twoje polityki - jeśli ustawisz niebezpieczne polityki, wtedy mały błąd może spowodować wiele szkód. Na przykład, zgodnie z zasadami, nie „modyfikujemy” plików, albo je zastępujemy, albo nie. Również wszystkie zastąpione pliki mają nagłówek, dzięki któremu każda osoba, która je edytuje, wie, że zostanie zastąpione następnym razem (uruchamia się przez cron co godzinę).
Konfiguracja i wszystkie pliki wysyłane przez cfengine na serwery są również przechowywane w SCM, i używając haków po zatwierdzeniu, tam gdzie to możliwe, sprawdzamy składnię, a jeśli to się nie powiedzie, zatwierdzenie jest odrzucane. Jest to łatwe w przypadku ładnych aplikacji, takich jak Apache, ale nie tak łatwe w przypadku większości aplikacji korporacyjnych.