Ansible

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Ansible
Ansible logo.svg
Maintainer Michael DeHaan
Entwickler AnsibleWorks, Inc.
Erscheinungsjahr 2012
Aktuelle Version 2.3.1.0
(01. Juni 2017[1])
Betriebssystem GNU/Linux, Unix-artige
Programmiersprache Python
Kategorie Orchestrierung
Lizenz GNU General Public License (freie Software)
deutschsprachig nein
www.ansible.com

Ansible ist eine Open-Source-Plattform zur Orchestrierung und allgemeinen Konfiguration und Administration von Computern. Sie kombiniert Softwareverteilung, Ad-hoc-Kommando-Ausführung und Konfigurationsmanagement. Sie verwaltet Netzwerkcomputer unter anderem über SSH und erfordert keinerlei zusätzliche Software auf dem zu verwaltenden 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.

Entstehung[Bearbeiten | Quelltext bearbeiten]

Das Projekt Ansible startete im Februar 2012 und die Plattform wurde von Michael DeHaan erstellt[2] dem Autor der Server-Provisioning-Applikation Cobbler und Co-Autor des Func-Frameworks zur Fernadministration. Anwender von Ansible sind beispielsweise das Fedora Projekt, Hewlett-Packard Deutschland, der deutsche Webhoster Hetzner und die Universität Thessaloniki. Ansible ist enthalten in der Fedora-Linux-Distribution des Unternehmens Red Hat Inc. und auch verfügbar für Red Hat Enterprise Linux, Debian, CentOS, MacOS und Scientific Linux[3]. Prinzipiell ist Ansible mit allen Unix-artigen Betriebssystemen nutzbar. Ab Version 1.7 unterstützen diverse Module auch Windows über Powershell-3.0-Befehle.

Im Januar 2016 wurde die Version 2.0 veröffentlicht.[4]

AnsibleWorks[Bearbeiten | Quelltext bearbeiten]

Am 4. März 2013 wurde die Firma AnsibleWorks gegründet.[5] Sie ist maßgeblich an der Entwicklung von Ansible beteiligt und bietet verschiedene Produkte rund um Ansible an, darunter Support und eine Browser-basierte Benutzerschnittstelle

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[6][7].

Architektur[Bearbeiten | Quelltext bearbeiten]

Wie die meisten anderen Konfigrationsmanagement-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 werden.

Designziele[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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.

Siehe auch[Bearbeiten | Quelltext bearbeiten]

Weblinks[Bearbeiten | Quelltext bearbeiten]

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. PR Abteilung: Red Hat Delivers Advanced Network Automation with Latest Version of Ansible. In: Pressemitteilungen. Ansible Inc., 12. April 2017, S. 1, abgerufen am 26. April 2017 (englisch).
  2. 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 Feburary of 2012.“
  3. Ansible Community: Installation - Ansible Documentation. In: docs.ansible.com. Red Hat Inc., abgerufen am 2. November 2016 (englisch).
  4. Redaktion: Ansible 2.0 ist fertig. In: ADMIN-Magazin. 12. Januar 2016, S. 1, abgerufen am 12. November 2016 (deutsch).
  5. Michael DeHaan: Introducing AnsibleWorks! In: The Inside Playbook. AnsibleWorks Inc., 4. März 2013, S. 1, abgerufen am 12. November 2016 (englisch).
  6. PR Abteilung: Red Hat to Acquire IT Automation and DevOps Leader Ansible. In: Pressemitteilungen. Red Hat Inc., 16. Oktober 2015, S. 1, abgerufen am 13. November 2015 (englisch).
  7. Oliver Frommel: Red Hat kauft Ansible. In: ADMIN-Magazin. 16. Oktober 2015, S. 1, abgerufen am 12. November 2016 (deutsch).