Chciałbym zrozumieć różnice między Puppet i Ansible, zwłaszcza jakie ograniczenia ma Puppet w porównaniu z Ansible.
Czy są jakieś rzeczy, których nie możesz zrobić w Puppet, ale w Ansible? Innymi słowy, dlaczego niektórzy ludzie odchodzą od Puppet do Ansible?
ansible
comparison
puppet
kenorb
źródło
źródło
Odpowiedzi:
Istnieje oczywiście kilka zalet i wad każdego z Puppet, Ansible, Chef i dodaj tutaj swoje ulubione narzędzie . Spróbuję więc trzymać się z dala od opinii i dzielić się tym, co jest świetne w Ansible.
Główną funkcją, która stawia Ansible nad innymi, nie jest konieczne poleganie na jakimś niestandardowym / dodatkowym agencie działającym na węzłach docelowych, zamiast tego opartym tylko na połączeniach ssh. Tak, nadal wymaga serwera ssh, Pythona i kilku bibliotek Pythona w węzłach, a jeśli twoja dystrybucja (lub, na szczęście, są pewne węzły systemu Windows) nie zostanie dostarczona z nimi, będzie trochę bolesne do bootstrap. Ale to mało prawdopodobne, a może nawet sprawić, że pomyślisz o swojej dystrybucji.
Uprości to monitorowanie, nie zje dodatkowych zasobów, nie zmusi systemu do ciągłego uruchamiania demona jako root, i ogólnie lepiej czuje się w filozofii UNIX. Szef kuchni
chef-solo
, Puppet można uruchomić bez opanowania, ale oba działają w „innym kierunku”, odpowiednio poprzez klonowanie i przechwytywanie. W przypadku Ansible scalenie w repozytorium źródłowym może spowodować wdrożenie w sposób, w którym wszyscy czujemy się komfortowo, czy to w Jenkins, w git master, czy w innym narzędziu, takim jak na przykład Rundeck.źródło
template
moduł Ansible czyni to bardzo łatwym.Nie, ludzie odchodzący od Puppet do Ansible (lub vice versa) nie mają nic wspólnego z tym, co można, lub czego nie można osiągnąć za pomocą żadnego z narzędzi. Puppet / Chef / Ansible - to głównie kwestia gustu.
Na przykład Ansible jest oparty na języku Python, a programiści języka Python zwykle czują się z nim lepiej (nie trzeba uczyć się DSL) lub Ruby (dla szefa kuchni). Łatwiej jest także programistom Python rozszerzyć Ansible.
Ale w gruncie rzeczy wszystkie są bardzo podobne pod względem tego, co można osiągnąć. Niektóre mają względne mocne strony w niektórych obszarach, a słabości w innych, ale zazwyczaj wybór między nimi zależy od stylu / kultury / preferencji zespołu.
źródło
Do czasu Puppet 4.0 nie było łatwego sposobu na zorganizowanie aplikacji rozproszonej na wielu serwerach lub usługach, ponieważ trudno było specjalnie zamówić akcje w Puppet, co było wyborem projektowym . Ansible był lepszy w organizowaniu i porządkowaniu kroków, szczególnie na wielu serwerach. Było to szczególnie istotne w aplikacjach, w których niewłaściwa kolejność kroków może prowadzić do błędów niewykrywalnych poprzez powtarzanie tych kroków, aż do osiągnięcia ostatecznej spójności.
To już nie jest problem, więc rozróżnienia są w dużej mierze oparte na preferencjach.
źródło