Die Vor- und Nachteile von Ansible


Wie viele Konfigurationsmanagement- und Automatisierungstools war auch Ansible ursprünglich ein Open-Source-Projekt zur Automatisierung von IT-Infrastrukturen und -Umgebungen. Als die Muttergesellschaft AnsibleWorks begann, im Unternehmen Fuß zu fassen, erweiterte sie den kommerziellen Support für das Produkt. Derzeit bestehen ihre Lösungen aus zwei Angeboten: Ansible und Ansible Tower, wobei letzteres über die Benutzeroberfläche und das Dashboard der Plattform verfügt. Obwohl es im Vergleich zu Konkurrenten wie Chef oder Puppet ein relativ neuer Akteur in der Arena ist, hat es sich unter DevOps-Profis einen recht guten Ruf für seine unkomplizierten Abläufe und einfachen Verwaltungsfunktionen erworben.

Natürlich hat jedes Tool ideale Anwendungsfälle, in denen es heller glänzt als die anderen. Zum Beispiel gilt Ansible weithin als einfach zu erlernen und zu verwenden - seine Playbooks sind für Menschen lesbar/verständlich, so dass Ergebnisse in kürzerer Zeit erzielt werden können. Die Einfachheit des Angebots kann jedoch dazu führen, dass fortgeschrittene Benutzer sich mehr Raffinesse wünschen. Im Folgenden finden Sie unsere Top 5 der besten und schlechtesten Attribute von Ansible.

Profis

Einfach/leicht zu erlernen

Dies ist vielleicht das am meisten gelobte Attribut von Ansible: Benutzer können mit dem Tool schnell auf den neuesten Stand kommen und produktiv werden. Unterstützt durch eine klare, leicht verständliche Dokumentation kann man den Workflow und die Logik der Operationen von Ansible in kurzer Zeit erlernen. Das Fehlen eines Abhängigkeitssystems bedeutet, dass Ansible-Aufgaben einfach sequenziell ausgeführt werden und gestoppt werden, wenn ein Fehler auftritt. Dies erleichtert die Fehlerbehebung, insbesondere zu Beginn der Arbeit mit dem Tool.

Geschrieben in Python

Ansible wurde in Python geschrieben, im Gegensatz zu anderen konkurrierenden Lösungen, die mit Sprachen wie Ruby erstellt wurden. Folglich ist es einfacher, es zum Laufen zu bringen, da Python-Bibliotheken standardmäßig auf den meisten Linux-Distributionen vorhanden sind. Es ist auch eine Sprache, die häufiger für Administrations- und Skripting-Aufgaben verwendet wird: Ingenieure und Systemadministratoren kennen Python eher als Ruby. Ansible-Module zur Erweiterung der Funktionalität des Tools können jedoch in jeder Sprache geschrieben werden, solange die Daten im JSON-Format zurückgegeben werden.

Ohne Agenten

Für die Verwaltung von Knoten verarbeitet Ansible die gesamte Master/Agent-Kommunikation mit Standard-SSH oder dem Paramiko-Modul, einer Python-Implementierung von SSH2. Für das Tool müssen keine Agenten auf Remote-Systemen installiert werden, um verwaltet zu werden, was weniger Wartungsaufwand und Leistungseinbußen bedeutet. Sehen Sie sich unsere Meinung dazu an, warum agentenlos der richtige Weg für GuardRail war.

YAML-basierte Playbooks

Playbooks - Ansible-Konfigurationsdateien - werden in YAML geschrieben, was für das Konfigurationsmanagement und die Automatisierung besser geeignet ist als andere Formate wie JSON. Es ist einfacher zu lesen, unterstützt Kommentare und verwendet die Verwendung von Ankern, um auf andere Elemente zu verweisen.

Ansible-Galaxie

Dieses Portal dient als zentrales Repository für das Suchen, Wiederverwenden und Freigeben von Ansible-Inhalten. So können beispielsweise wiederverwendbare Rollen für die Serverkonfiguration oder Anwendungsinstallation heruntergeladen werden, um sie in den Playbooks zu verwenden, wodurch die Bereitstellungszeit erheblich verkürzt wird.

Nachteile

Die Benutzeroberfläche fehlt

Ursprünglich ein reines Befehlszeilentool, unternahm Ansible einen ersten Versuch einer Benutzeroberfläche mit AWX: eine grafische Benutzeroberfläche und einen REST-Endpunkt, um die Infrastrukturverwaltung zu vereinfachen. AWX entwickelte sich schließlich zu Ansible Tower, einer Web-Management-Benutzeroberfläche, die visuelle Verwaltungsfunktionen und ein teambasiertes Workflow-Tool bietet. Obwohl es sich um eine ernsthafte Verbesserung gegenüber AWX handelt, hat Ansible Tower immer noch viel Raum für Verbesserungen - tatsächlich können nur 85 % dessen, was über die Befehlszeile erledigt werden kann, über die Benutzeroberfläche erreicht werden. Ein weiteres häufiges Ärgernis ist, dass die GUI gelegentlich nicht mehr mit der Befehlszeile synchronisiert ist, was zu unterschiedlichen Abfrageergebnissen führt. Insgesamt ist Ansible Tower noch in Arbeit und kann nicht alles können, was die Befehlszeilenschnittstelle kann.

Kein Begriff von Staat

Im Gegensatz zu vergleichbaren Automatisierungstools wie Puppet hat Ansible keine Vorstellung von Staat. Da Abhängigkeiten nicht nachverfolgt werden, führt das Tool einfach eine sequenzielle Reihe von Aufgaben aus und stoppt, wenn es abgeschlossen ist, fehlschlägt oder ein Fehler auftritt. Für einige ist diese vereinfachte Art der Automatisierung wünschenswert; Viele bevorzugen jedoch ihr Automatisierungstool, um einen umfangreichen Katalog für die Bestellung (à la Puppet) zu verwalten, der es ihnen ermöglicht, unabhängig von Abweichungen in den Umgebungsbedingungen einen definierten Zustand zu erreichen.

Im Entstehen begriffener Windows-Support

Ab Version 1.7 unterstützt Ansible sowohl Unix/Linux- als auch Windows-Nodes. Für letzteres wird natives Powershell-Remoting (im Gegensatz zu SSH) verwendet, und für die Verwaltung von Windows-Hosts ist weiterhin ein Linux-Steuercomputer erforderlich. Ansible steht noch am Anfang seiner Bemühungen, die Unterstützung für Windows zu erweitern, wobei zukünftige Versionen von Ansible angeblich eine tiefere Windows-Interoperabilität beinhalten sollen.

Minimale Support-Erfahrung im Unternehmen

Obwohl der Enterprise Tower und der Premium Tower von Ansible auf mittlere bis große Unternehmen ausgerichtet sind - beide Optionen bieten erweiterte Support-Optionen: Enterprise 8x5 Support & SLA (4 Stunden Critical Incident Response) bzw. Premium 24x7 Support & SLA (2 Stunden Critical Incident Response) - hat das Unternehmen weniger Erfahrung in der Zusammenarbeit mit großen Unternehmen als Konkurrenten wie Chef und Puppet.

Ein neueres Angebot

Ansible gibt es noch nicht so lange wie konkurrierende Lösungen wie Chef oder Puppet. In der Folge hat es die kleinste Entwickler-/Benutzergemeinschaft und die wenigsten Materialien im Web zur Selbsthilfe und Fehlerbehebung. Weniger Zeit auf dem Markt bedeutet, dass bestimmte problematische Edge-Szenarien, Bugs und Softwareprobleme vielleicht noch nicht ans Licht gekommen sind.

Kurz gesagt, die Lösung von Ansible ist ein einfaches, aber leistungsstarkes Tool für das Konfigurationsmanagement und die Automatisierung. Das Ansible Tower-Angebot bietet eine Web-Management-Benutzeroberfläche, eine integrierte REST-API für die einfache Integration mit anderen Diensten sowie einen erweiterten Service und Support für Unternehmen - obwohl dies für sie Neuland ist. Wie bei den meisten Dingen gibt es keine "Einheitslösung" - Ansible ist einfach zu erlernen und zu verwenden, aber es fehlen einige erweiterte Funktionen, die in ausgereifteren Lösungen der Konkurrenz vorhanden sind. Je nach Anwendungsfall kann dies entweder ein Hindernis oder ein Vorteil sein.

Quellen

https://blog.codecentric.de/en/2014/06/ansible-simple-yet-powerful-automation/

https://www.infoworld.com/article/2612397/review--ansible-orchestration-is-a-veteran-unix-admin-s-dream.html

https://www.infoq.com/articles/ansible-view-on-it-automation/

Verwandte Artikel