Ansible ist ein Open-Source-Automatisierungswerkzeug zur Orchestrierung und allgemeinen Konfiguration und Administration von Computern. Es kombiniert Softwareverteilung, Ad-hoc-Kommando-Ausführung und Software-Configuration-Management. Die Verwaltung von Netzwerkcomputern erfolgt unter anderem über SSH und erfordert keinerlei zusätzliche Software auf dem verwalteten System. Module nutzen zur Ausgabe JSON und können in jeder beliebigen Programmiersprache geschrieben sein. Das System nutzt YAML zur Formulierung wiederverwendbarer Beschreibungen von Systemen.
Im Januar 2016 wurde die Version 2.0 veröffentlicht.[5]
AnsibleWorks
Am 4. März 2013 wurde die Firma AnsibleWorks gegründet.[6] Sie ist maßgeblich an der Entwicklung von Ansible beteiligt und bietet verschiedene Produkte rund um Ansible an, darunter Support und eine Browser-basierteBenutzerschnittstelle.
Am 16. Oktober 2015 wurde bekanntgegeben, dass Ansible Inc. (ursprünglich AnsibleWorks Inc.) durch Red Hat Inc. übernommen und in das eigene Portfolio integriert wird[7][8].
Architektur
Wie die meisten anderen Konfigurationsmanagement-Systeme unterscheidet Ansible zwischen Konfigurationsüberwachung und Knoten, auf denen die Konfigurationsänderung durchgeführt wird. Diese Knoten werden von Ansible via SSH verwaltet, wobei die Lage der Knoten im Inventar der Konfigurationsüberwachung verwaltet wird.
Designziele
minimalistisch
Managementsysteme sollten keine zusätzlichen Abhängigkeiten von der Umgebung erfordern.
sicher
Ansible setzt keine Agenten auf Knoten ein. Nur OpenSSH und Python[9] (bzw. WinRM oder OpenSSH und Powershell unter Windows)[10] sind auf den verwalteten Knoten erforderlich.
zuverlässig
Wenn sorgfältig geschrieben, können Ansible-Playbooks idempotent sein und damit unerwartete Nebenwirkungen auf die verwalteten Systeme vermeiden.
leicht erlernbar
Playbooks verwenden eine einfache beschreibende Sprache, die auf YAML- und Jinja-Templates basiert.
Module
Jedes Ansible-Modul kann eigenständig und in einer beliebigen Programmiersprache geschrieben sein. Dabei sollten die Module idempotent sein, was bedeutet, dass selbst wenn ein Vorgang mehrfach wiederholt wird – z. B. bei der Wiederherstellung nach einem Ausfall – das System immer in denselben Zustand versetzt wird.
Inventar
Das Inventar ist eine Beschreibung der Knoten, auf die von Ansible zugegriffen werden kann. Standardmäßig wird das Inventar durch eine Initialisierungsdatei beschrieben. Die Konfigurationsdatei listet entweder die IP-Adresse oder den Hostnamen jedes Knotens auf, der von Ansible zugänglich ist. Darüber hinaus können Knoten gruppiert werden.
Ansible kann auch dynamisch Daten aus anderen Systemen beziehen.
Playbooks
Playbooks beschreiben Konfigurationen, Deployment und Orchestrierung in Ansible. Das Playbook-Format ist YAML, wobei jedes Playbook eine Gruppe von Hosts zu einer Reihe von Rollen zuordnet.
AWX
AWX ist eine REST-API, ein Web-Service und eine Web-basierte Konsole. Damit kann die mit Ansible verwaltete IT-Infrastruktur zentralisiert werden mit einem visuellen Dashboard einschließlich Verwaltung aller Inventare, einer rollenbasierten Zutrittskontrolle, Job-Scheduling und Nachrichten.
↑Release 2.18.1. 2. Dezember 2024 (abgerufen am 21. Dezember 2024).
↑Michael DeHaan: The Origins of Ansible. In: The Inside Playbook. Red Hat, Inc., 8. Dezember 2013, abgerufen am 7. Juni 2017 (englisch): „So Ansible began as a project, sometime in February of 2012.“
↑Ansible Community: Installation – Ansible Documentation. In: docs.ansible.com. Red Hat Inc., archiviert vom Original (nicht mehr online verfügbar) am 4. November 2016; abgerufen am 2. November 2016 (englisch).Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/docs.ansible.com
↑Yaakov Selkowitz: ANNOUNCEMENT ansible 2.8.2-1. In: Cygwin Project mailing list. cygwin.com, abgerufen am 20. August 2019 (englisch).