Porównanie oprogramowania do zarządzania konfiguracją typu open source
Jest to porównanie godnego uwagi bezpłatnego i otwartego oprogramowania do zarządzania konfiguracją , które jest odpowiednie do zadań takich jak konfiguracja serwera, orkiestracja i infrastruktura jako kod zwykle wykonywany przez administratora systemu .
Podstawowe właściwości
„Tryb weryfikacji” odnosi się do możliwości określenia, czy węzeł jest zgodny z gwarancją, że go nie modyfikuje, i zazwyczaj obejmuje wyłączne użycie języka wewnętrznego obsługującego tryb tylko do odczytu dla wszystkich operacji potencjalnie modyfikujących system. „ Wzajemna autoryzacja ” odnosi się do klienta weryfikującego serwer i odwrotnie.
„Agent” opisuje, czy wymagane są dodatkowe demony oprogramowania . W zależności od oprogramowania do zarządzania, agenty te są zwykle instalowane w systemie docelowym lub na jednym lub wielu centralnych serwerach „kontrolujących”. Chociaż „Bez agenta” = „Nie” ma kolor czerwony i może wydawać się negatywny, w rzeczywistości posiadanie agenta może być uważane przez wielu za całkiem korzystne. Zastanów się, jaki wpływ może mieć sytuacja, w której narzędzie bez agenta utraci łączność z węzłem podczas wprowadzania krytycznych zmian — pozostawiając węzeł w nieokreślonym stanie, który zagraża jego (produkcyjnej?) funkcjonalności.
Język | Licencja | Autoryzacja wzajemna | Szyfrowanie | Tryb weryfikacji | Bez agenta | Posiada graficzny interfejs użytkownika | Pierwsze wydanie | Najnowsza stabilna wersja | |
---|---|---|---|---|---|---|---|---|---|
ansibl | Pyton | GPLv3+ | Tak | Tak | Tak | Tak | Tak | 2012-03-08 | 2022-04-05 5.6.0 |
Bcfg2 | Pyton | BSD 2-klauzula | Tak | Tak | Tak | NIE | Tak | 2004-08-11 | 2015-06-11 1.3.6 |
Kapistrano | Rubin | Licencja MIT | Tak | Tak | NIE | 2005 | 2022-08-07 3.17.1 | ||
cd | Pyton | GPLv3+ | Tak | Tak | Tak | 2010 | 2021-08-24 6.9.8 | ||
Szef kuchni | Ruby, Erlang | Apache 2.0 | Tak | Tak | Tak | NIE | Tak | 2009-01-15 0.5.0 | 2023-01-05 18.1.0 (klient), 15.4.0 (serwer) |
CFEngine | C | GPLv3 | Tak | Tak | Tak | NIE | Tak | 1993 | 3.21.0, 3.18.3, |
ISconf | Pyton | GPL | Tak | NIE | 1998 | 2006-08-13 4.2.8.233 | |||
Juju | Pyton, idź | Powszechna Licencja Publiczna Affero | Tak | Tak | NIE | NIE | Tak | 2010-09-17 | 2022-10-12 2.9.35 |
Lokalny system konfiguracji ( LCFG ) | Perl | GPL | Częściowy | Częściowy | NIE | NIE | NIE | 1994 | Cotygodniowe wydania |
Projekt NOK | Pyton | Licencja BSD 2.0 | Tak | Tak | Tak | Tak | Tak | 2012-03-08 | 2015-05-20 15.05.1 |
Inwentaryzacja OCS NG z GLPI | Perla, PHP, C++ | GPL | NIE | Tak | NIE | 2003 | 2014-07-13 | ||
Integracja z serwerem Open PC ( Opsi ) | Python, Jawa | GPL | NIE | Tak | NIE | 2004 | 2013-03-01 4.0.3 | ||
PIKT | C | GPLv2+ | Tak | Tak | NIE | 1998 | 2007-09-10 1.19.0 | ||
Marionetka | Ruby, C++ i Clojure (po stronie serwera również Ruby przed 4.0) | Apache od 2.7.0, wcześniej GPL | Tak | Tak | Tak | NIE | Tak | 2005-08-30 | 2020-06-03 6.16.0 (klient), 2020-06-03 6.12.0 (serwer) |
Quattor | Perla, Pythona | Apache 2.0 | Tak | Tak | 2005-04-01 | 2018-07-3 18.6.0 | |||
Radmind | C | BSD | Tak | Tak | NIE | 2002-03-26 | 2008-10-08 1.13.0 | ||
Reks | Perl | Apache | Tak | Tak | Tak | 2010-11-05 0.9.0 | 2021-07-05 1.13.4 | ||
Ster | C , Scala i Rust | GPLv3 i Apache 2.0 | Tak | Tak | Tak | NIE | Tak | 2011-10-31 | 2020-10-28 5.0.20 |
SmartFrog | Jawa | Apache 2.0 | Tak | Tak | NIE | 2004-02-11 | 2012-03-13 3.18.016 | ||
Sól | Pyton | Apache 2.0 | Tak | Tak | Tak | Obydwa | Tak | 2011-03-17 0.6.0 | 2022-03-28 v3004.1 |
Spacer kosmiczny | Java (C, Perl, Python, PL/SQL ) | GPLv2 | Tak | Tak | NIE | 2008-06 | 2019-01-14 2.9 | ||
STAF | C++ | CPL | NIE | Częściowy | NIE | 1998-02-16 | 2012-12-16 3.4.16 | ||
Narzędzie do synchronizacji | Pyton | GPLv2 | Tak | Tak | Tak | Tak | 2003 | 2019-08-11 6.3 | |
Uyuni | Java, Python, PL/SQL (Perl) | GPLv2/Apache 2.0 | Tak | Tak | Tak | Obydwa | Tak | 2018-06 | 2022-05-10 2022.05 |
Język | Licencja | Autoryzacja wzajemna | Szyfruje | Tryb weryfikacji | Bez agenta | Mieć GUI | Pierwsze wydanie | Najnowsza stabilna wersja |
Wsparcie platformy
Uwaga: oznacza to platformy, na których najnowsza wersja narzędzia była z powodzeniem używana, a nie platformy, na których teoretycznie powinno działać, ponieważ jest napisane w dobrym przenośnym języku C/C++ lub języku interpretowanym. Powinna być również wymieniona jako obsługiwana platforma na stronie internetowej projektu.
AIX | *BSD | HP-UX | Linuks | OS X | Solaris | Okna | Inni | |
---|---|---|---|---|---|---|---|---|
Ansibl | Tak | Tak | Tak | Tak | Tak | Tak | Tak (potrzebujesz maszyny sterującej linux) | Tak |
Bcfg2 | Częściowy | Tak | NIE | Tak | Częściowy | Tak | NIE | NIE |
CFEngine | Tak | Tak | Tak | Tak | Tak | Tak | Tak (tylko wersja Enterprise) | Tak |
cd | Tak | Tak | Tak | NIE | ||||
Szef kuchni | Tak | Tak | Tak | Tak | Tak | Tak | Tak | Tak |
ISconf | Tak | Tak | Tak | Tak | Tak | Tak | NIE | NIE |
Juju | Tak | Tak | ||||||
Lokalny system konfiguracji ( LCFG ) | NIE | NIE | NIE | Częściowy | Częściowy | Częściowy | NIE | NIE |
Inwentarz OCS NG | Tak | Tak | Tak | Tak | Tak | Tak | Tak | NIE |
Integracja z serwerem Open PC ( Opsi ) | NIE | NIE | NIE | Tak | NIE | NIE | Tak | NIE |
PIKT | Tak | Tak | Tak | Tak | Tak | Tak | NIE | Tak |
Marionetka | Tak | Tak | Tak | Tak | Tak | Tak | Tak | Tak |
Quattor | NIE | NIE | NIE | Tak | Częściowy | Tak | NIE | NIE |
Radmind | Tak | Tak | NIE | Tak | Tak | Tak | Tak | NIE |
Reks | Tak | Tak | Tak | Tak | Tak | NIE | ||
Ster | Tak | Częściowy | NIE | Tak | Częściowy | Częściowy | Tak | Tak |
SmartFrog | NIE | NIE | Tak | Tak | Tak | Tak | Tak | NIE |
Sól | Tak | Tak | Częściowy | Tak | Tak | Tak | Tak | Częściowy |
Spacer kosmiczny | NIE | NIE | NIE | Tak | NIE | NIE | NIE | NIE |
STAF | Tak | Tak | Tak | Tak | Tak | Tak | Tak | Tak |
Narzędzie do synchronizacji | Tak | Tak | Tak | Tak | Tak | Tak | NIE | Tak |
Uyuni | NIE | NIE | NIE | Tak | NIE | NIE | NIE | NIE |
AIX | *BSD | HP-UX | Linuks | OS X | Solaris | Okna | Inni |
Krótkie opisy
Nie wszystkie narzędzia mają ten sam cel i ten sam zestaw funkcji. Aby pomóc rozróżnić wszystkie te pakiety oprogramowania, oto krótki opis każdego z nich.
- Ansible
- Łączy wdrożenie wielowęzłowe, wykonywanie zadań ad-hoc i zarządzanie konfiguracją w jednym pakiecie. Zarządza węzłami przez SSH i wymaga zainstalowania na nich Pythona (2.6+ lub 3.5+). Moduły działają na JSON i standardowym wyjściu i mogą być napisane w dowolnym języku. Używa YAML do wyrażania opisów systemów wielokrotnego użytku.
- Bcfg2
- Oprogramowanie do zarządzania konfiguracją dużej liczby komputerów przy użyciu centralnego modelu konfiguracji i paradygmatu klient-serwer . System umożliwia uzgadnianie stanu klientów z centralną specyfikacją konfiguracyjną. Szczegółowe raporty umożliwiają identyfikację konfiguracji niezarządzanej na hostach. Generatory umożliwiają generowanie plików konfiguracyjnych na podstawie kodu lub szablonu z centralnego repozytorium danych.
- CFEngine
- Lekki system agentów. Zarządza konfiguracją dużej liczby komputerów w paradygmacie klient-serwer lub w trybie autonomicznym. Każdy stan klienta, który różni się od opisu zasad, jest przywracany do pożądanego stanu. Stan konfiguracji jest określany za pomocą języka deklaratywnego. Paradygmatem CFEngine jest zbieżna „immunologia komputerowa”.
- cdist
- cdist to system zarządzania konfiguracją o zerowej zależności: wymaga tylko ssh na docelowym hoście, który jest zwykle włączony na wszystkich maszynach uniksopodobnych. Tylko host administracyjny musi mieć zainstalowany język Python 3.2.
- Chef
- Chef jest narzędziem do zarządzania konfiguracją napisanym w języku Erlang i używa czystego Ruby DSL do pisania „przepisów” konfiguracyjnych. Receptury te zawierają zasoby, które należy doprowadzić do zadeklarowanego stanu. Chef może być używany jako narzędzie klient-serwer lub w trybie „solo”.
- ISconf
- Narzędzie do wykonywania poleceń i replikowania plików we wszystkich węzłach. Węzły nie muszą być w górze; polecenia zostaną wykonane podczas uruchamiania. System nie ma centralnego serwera, więc polecenia mogą być uruchamiane z dowolnego węzła i będą replikowane do wszystkich węzłów.
- Juju
- Juju koncentruje się na pojęciu usługi, abstrahując pojęcie maszyny lub serwera i definiuje relacje między tymi usługami, które są automatycznie aktualizowane, gdy dwie połączone usługi zauważą zauważalną modyfikację.
- Lokalny system konfiguracji ( LCFG )
- LCFG zarządza konfiguracją za pomocą centralnego języka opisu w XML, określając zasoby, aspekty i profile. Konfiguracja jest wdrażana przy użyciu paradygmatu klient-serwer. Odpowiednie skrypty na klientach (zwane komponentami ) dokonują transkrypcji zasobów do plików konfiguracyjnych iw razie potrzeby restartują usługi.
- Integracja z otwartym serwerem PC ( Opsi )
- Opsi to oprogramowanie do zarządzania komputerami stacjonarnymi dla klientów Windows , oparte na serwerach Linux . Zapewnia automatyczne (dystrybucję) oprogramowania , nienadzorowaną instalację systemu operacyjnego, zarządzanie poprawkami , inwentaryzację sprzętu i oprogramowania, zarządzanie licencjami i zasobami oprogramowania oraz zadania administracyjne związane z zarządzaniem konfiguracją .
- PIKT
- PIKT to przede wszystkim system monitoringu, który zajmuje się również zarządzaniem konfiguracją. „PIKT składa się z wyrafinowanego, bogatego w funkcje preprocesora plików, innowacyjnego języka skryptowego z unikalnymi funkcjami oszczędzającymi pracę, elastycznego, centralnie zarządzanego harmonogramu procesów, dostosowywanego instalatora plików, zbioru potężnych rozszerzeń wiersza poleceń oraz innych przydatnych narzędzi ”.
- Puppet
- Puppet składa się z niestandardowego deklaratywnego języka do opisu konfiguracji systemu, dystrybuowanego przy użyciu paradygmatu klient-serwer (z wykorzystaniem protokołu XML-RPC w starszych wersjach, z niedawnym przejściem na REST ) oraz biblioteki do realizacji konfiguracji. Warstwa abstrakcji zasobów umożliwia administratorom opisywanie konfiguracji w terminach wysokiego poziomu, takich jak użytkownicy, usługi i pakiety. Puppet upewni się wtedy, że stan serwera odpowiada opisowi. Począwszy od wersji 2.6.0, Puppet zapewniał krótkie wsparcie dla używania czystego Ruby DSL jako alternatywnego języka konfiguracji. Jednak ta funkcja została wycofana począwszy od wersji 3.1.
- Quattor
- Model informacji quattor opiera się na rozróżnieniu między stanem pożądanym a stanem rzeczywistym. Żądany stan jest rejestrowany w bazie danych konfiguracji obejmującej całą sieć szkieletową przy użyciu specjalnie zaprojektowanego języka konfiguracji o nazwie Pan do wyrażania i sprawdzania poprawności konfiguracji, składającego się z hierarchicznych bloków konstrukcyjnych wielokrotnego użytku zwanych szablonami. Konfiguracje są propagowane i buforowane w zarządzanych węzłach.
- Radmind
- Radmind zarządza konfiguracją hostów na poziomie systemu plików. W podobny sposób jak Tripwire (i inne narzędzia do zarządzania konfiguracją), może wykryć zewnętrzne zmiany w zarządzanej konfiguracji i opcjonalnie cofnąć zmiany. Radmind nie posiada abstrakcji elementów konfiguracji wyższego poziomu (usług, pakietów). Interfejs graficzny jest dostępny (tylko) dla systemu OS X.
- Rex
- Rex to system zdalnego wykonywania ze zintegrowanym zarządzaniem konfiguracją i możliwościami wdrażania oprogramowania. Administrator udostępnia instrukcje konfiguracyjne za pośrednictwem tzw. plików Rex . Są napisane w małym DSL , ale mogą również zawierać dowolny Perl. Dobrze integruje się z automatycznym systemem kompilacji używanym w CI .
- Salt
- Salt zaczynał jako narzędzie do zdalnego zarządzania serwerem. Wraz ze wzrostem jego wykorzystania zyskał szereg rozszerzonych funkcji, w tym bardziej wszechstronny mechanizm konfiguracji hosta. Jest to stosunkowo nowa funkcja, którą zapewnia komponent Salt States. Dzięki trakcji, jaką Salt zyskał w ostatniej bitwie, wsparcie dla większej liczby funkcji i platform może nadal rosnąć.
- SmartFrog
- oparte na Javie do wdrażania i konfigurowania aplikacji rozproszonych na wielu komputerach. Nie ma centralnego serwera; możesz wdrożyć plik konfiguracyjny .SF w dowolnym węźle i rozesłać go do węzłów równorzędnych zgodnie z informacjami o dystrybucji zawartymi w samym deskryptorze wdrażania.
- Spacewalk
- Spacewalk to otwarte rozwiązanie do zarządzania systemami Linux i Solaris [ modne hasło ] i jest projektem źródłowym źródła Red Hat Network Satellite. Spacewalk współpracuje z RHEL, Fedora i innymi dystrybucjami pochodnymi RHEL, takimi jak CentOS, Scientific Linux itp. Trwają prace nad spakowaniem go w celu włączenia do Fedory. Spacewalk zapewnia inwentaryzację systemów (informacje o sprzęcie i oprogramowaniu, instalację i aktualizacje oprogramowania, gromadzenie i dystrybucję niestandardowych pakietów oprogramowania w możliwe do zarządzania grupy, udostępnianie systemów, zarządzanie i wdrażanie plików konfiguracyjnych, monitorowanie systemu, udostępnianie wirtualnych gości, uruchamianie/zatrzymywanie/konfigurowanie wirtualnych gości i delegowanie wszystkich tych działań do użytkowników lokalnych lub użytkowników LDAP i uprawnień systemowych). Od maja 2020 r. Spacewalk jest teraz EOL, a użytkownicy przenieśli się do Uyuni lub Foreman / Katello.
- STAF Framework
- Software Testing Automation Framework (STAF) umożliwia użytkownikom tworzenie wieloplatformowych, rozproszonych środowisk testowych oprogramowania. STAF usuwa nudę związaną z budowaniem infrastruktury automatyki, umożliwiając w ten sposób użytkownikom skupienie się na budowaniu rozwiązania automatyzacji. [ buzzword ] Framework STAF zapewnia podstawę do budowania rozwiązań wyższego poziomu [ buzzword ] i zapewnia podejście typu pluggable obsługiwane na wielu różnych platformach i językach.
- Synctool
- Synctool ma być łatwy do zrozumienia, nauczenia się i używania. Jest napisany w Pythonie i wykorzystuje SSH (bez hasła, z uwierzytelnianiem opartym na hoście lub kluczu) i rsync. Do skonfigurowania narzędzia Synctool nie jest potrzebny żaden określony język. Synctool ma funkcje pracy na sucho, które umożliwiają chirurgiczną precyzję. Synctool zależy od Python2, który jest teraz EOL i nie ma obecnie planów migracji go do Python3.