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.

Zobacz też