Direkt zum Inhalt | Direkt zur Navigation

Sektionen

Focus on your applications!

Benutzerspezifische Werkzeuge

Sie sind hier: Startseite / Support / Glossar / Ansible

Ansible

erstellt von Veit Schiele zuletzt verändert: 14.09.2017 08:59

Ansible ist eine Open-Source-Engine, die Software-Provisioning, Konfigurationsmanagement, and Application-Deployment automatisiert.

Architektur

Wie die meisten anderen Konfigrationsmanagement-Systeme unterscheidet Ansible zwischen Konfigurationsüberwachung (Control Machine), bei der die Orchestrierung beginnt und Knoten (Nodes), auf denen die Konfigurationsänderung durchgeführt wird. Diese Knoten werden von Ansible via SSH verwaltet wobei die Lage der Knoten im Inventar der Control Machine verwaltet werden.

Um Knoten zu orchestrieren, verteilt Ansible Module zu den Knoten über SSH. Module werden temporär im Knoten gespeichert und kommunizieren mit der Control Machine über ein JSON-Protokoll. Nach der Konfiguration des Knoten verbraucht Ansible weder Ressourcen auf dem Knoten noch ist es für den weiteren Betrieb einer Anwendung auf diesem Knoten erforderlich (agentenlose Architektur).

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 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 Konfigurationsdatei im INI- Format 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.