Ich möchte die Unterschiede zwischen Puppet und Ansible verstehen, insbesondere die Art der Puppet-Einschränkungen im Vergleich zu Ansible.
Gibt es Dinge, die Sie in Puppet nicht tun können, aber in Ansible? Mit anderen Worten, warum ziehen einige Leute von Puppet zu Ansible?
ansible
comparison
puppet
Kenorb
quelle
quelle
Antworten:
Natürlich gibt es auch hier verschiedene Vor- und Nachteile für Puppet, Ansible, Chef und Ihr Lieblingswerkzeug . Also werde ich versuchen, mich von der Meinung fernzuhalten und zu teilen, was in Ansible eigentlich großartig ist.
Die Hauptfunktion, die Ansible über die anderen stellt, besteht darin, dass kein benutzerdefinierter / zusätzlicher Agent auf den Zielknoten ausgeführt werden muss, sondern nur auf SSH-Verbindungen basiert. Ja, es werden immer noch ein SSH-Server, Python und eine Reihe von Python-Bibliotheken auf den Knoten benötigt, und wenn Ihre Distribution (oder, zum Glück, es gibt einige Windows-Knoten) nicht mit ihnen ausgeliefert wird, wird es ein bisschen sein schmerzhaft zu bootstrap. Aber das ist unwahrscheinlich und bringt Sie vielleicht sogar dazu, noch einmal über Ihre Distribution nachzudenken.
Das vereinfacht die Überwachung, verbraucht keine zusätzlichen Ressourcen und zwingt das System nicht dazu, einen Daemon als Root auszuführen, und fühlt sich im Allgemeinen besser in der UNIX-Philosophie. Chefkoch hat
chef-solo
, Puppet kann ohne Master ausgeführt werden, aber beide arbeiten "in die andere Richtung", indem sie klonen bzw. über Hooks. Während bei Ansible eine Zusammenführung im Quell-Repository die Bereitstellung auf eine Weise auslösen kann, mit der wir alle vertraut sind, sei es in Jenkins, im Git-Master oder in einem anderen Tool wie beispielsweise Rundeck.quelle
template
Modul macht dies recht einfach.Nein, Menschen, die von Puppet zu Ansible (oder umgekehrt) wechseln, haben nichts damit zu tun, was mit beiden Werkzeugen erreicht werden kann oder nicht. Marionette / Koch / Ansible - das ist meistens Geschmackssache.
Ansible basiert beispielsweise auf Python, und Python-Entwickler fühlen sich in der Regel besser damit vertraut (DSL muss nicht erlernt werden) oder mit Ruby (für den Chef). Einfacher für Python-Entwickler, auch Ansible zu erweitern.
Aber im Grunde sind sie sich alle sehr ähnlich, was das angeht, was Sie erreichen können. Einige haben relative Stärken in einigen Bereichen und Schwächen in anderen Bereichen, aber in der Regel wird die Wahl zwischen ihnen durch Stil / Kultur / Vorlieben des Teams getroffen.
quelle
Bis Puppet 4.0 gab es keine einfache Möglichkeit, Anwendungen, die auf mehrere Server oder Dienste verteilt waren, zu orchestrieren , da es schwierig war, Aktionen in Puppet zu bestellen, was eine Designentscheidung war . Ansible war besser darin, die Schritte zu orchestrieren und zu ordnen, insbesondere auf mehreren Servern. Dies war insbesondere bei Anwendungen von Bedeutung, bei denen die falsche Reihenfolge der Schritte dazu führen kann, dass Fehler durch Wiederholung dieser Schritte nicht mehr behoben werden können, bis eine endgültige Konsistenz erreicht ist.
Das ist kein Thema mehr und die Unterscheidungen sind weitgehend präferenzbasiert.
quelle