Ich kenne Puppet aus (begrenzter) Erfahrung und habe festgestellt, dass es im Konfigurationsmanagement jetzt einen starken Trend zu Ansible gibt.
Einerseits verstehe ich, dass Ansible keinen Agenten benötigt, weil es intelligent nutzt ssh
.
Auf der anderen Seite sind dies Funktionen, die Puppet gefallen haben:
- Zugriff auf den systemweiten Konfigurationsstatus und -verlauf (PuppetDB) über die REST-API
- Möglichkeit, Backups von überschriebenen Dateien (Filebuckets) zu speichern
- Möglichkeit, einen Teil der Hiera-Konfigurationen zu verschlüsseln (
.eyaml
)
Unter diesen scheint mir PuppetDB das wichtigste und nützlichste zu sein (z. B. für die Integration mit anderen Tools). Daher lautet meine Frage: Hat Ansible etwas Ähnliches wie PuppetDB, dh eine Komponente, die eine API bietet, in der beispielsweise gefragt werden könnte: "Welche Pakete sind auf Host x installiert ?" oder "Auf welchen Hosts ist Paket y installiert?"
(Diese Frage wurde von StackOverflow migriert ).
UPDATE Wesentlicher Nachteil von Puppet ist meine bisherige Erfahrung: Nicht so sehr die Tatsache, dass ein Agent erforderlich ist (nach dem, was ich gesehen habe, führt Ansibles Verwendung von Python auch eine Art Agent in Form eines Python-Interpreters ein ;-), aber dass es möchte, dass sein Agent root
nur und immer handelt.
root
? Es ersetzt die Notwendigkeit, dass sich eine SA anmelden und manuell arbeiten muss. Daher muss sie in der Lage sein, alles zu tun, was eine SA tun kann.root
Zugriffsrechte auf einem Servercluster hat, aber dennoch Ansible zum Verwalten einer großen Webanwendung dort verwenden kann. Außerdem gibt es SAs, die sich nicht als anmeldenroot
, sondernsudo
sparsamer verwenden.Antworten:
Die direkte Antwort lautet "nein".
Ansible verfügt über keine Datenbank, da es von verschiedenen Betreibern von verschiedenen Computern ausgeführt werden soll und der Zweck darin besteht, sicherzustellen, dass sich die Zielsysteme im genauen Zustand befinden, wie in den Playbooks angegeben.
Es besteht die Möglichkeit, externe Fakten-Cache- Backends an Ansible anzuhängen . Damit Sie Redis als Cache einrichten können, füllt Ansible sie während des Playbook-Laufs mit gesammelten Fakten und Sie können Redis später nach ihnen abfragen. Aber es ist Lösung sehr begrenzt, weil es nicht zu viele Fakten gesammelt durch ansible, zum Beispiel gibt es keine Informationen über die installierten Pakete - Sie haben sie selbst eine Verwendung sammeln
set_fact
mitcacheable
Option , sie in externe Cache zu setzen.quelle