Ansible - Das Open Source Automatisierungs-Werkzeug

Orchestrierung von IT-Systemen

programmierung

Werden Administrationsaufgaben, die Automatisierung von Software, und ganzen Infrastrukturen immer wieder benötigt, oder sollen automatisiert durchgeführt werden, bietet es sich an, diese Aufgaben über eine Automatisierungssoftware durchzuführen.

Ein Konfigurationsmanagementsystem kommt immer dann zum Einsatz, wenn eine zuvor definierte Konfiguration auf einem Netzwerkhost umgesetzt werden soll. Beispielsweise können so Konfigurationsdateien oder Softwarepakete ausgerollt werden. Selbstverständlich können aus der Ferne mit Ansible auch Dienste gestartet oder beendet werden.

 

Ansible hat sich in den letzten Jahren zum de facto Industrie-Standard entwickelt. Das Automatisisierungs-Werkzeug bietet Softwareverteilung, ein Konfigurationsmanagement und eine Ad-hoc-Kommando Ausführungsmöglichkeit. Die Verwaltung von Rechnern und Servern im Netzwerk erfolgt agentenlos über SSH. Dies unterscheidet Ansible von den meisten anderen Tools. Die in sogenannten Playbooks definierten Aufgaben beschreiben Konfiguration, Deployment und Orchestrierung in Ansible. Erstellt werden diese mit YAML-Dateien.

Die Playbooks ermöglichen die Ausführung von beliebigen Shell-Kommandos auf dem fremden System. In Ansible ist ein Chain-Error-Handling vollintegriert und eines der wichtigsten Vorteile gegenüber normalen Skripten. Hierdurch sind Ihre Systeme bei jedem Konfigurations-, bzw. Automatisierungsschritt integer und im Fehlerfall werden entsprechende Rollbacks vollautomatisch durchgeführt.

Für Ansible stehen standardmäßig sehr viele Module zur Verfügung. Diese ermöglichen es direkt die unterschiedlichsten Aufgaben durchzuführen (wie beispielsweise die Softwareinstallation über das yum / dnf -Modul). Die in einem Modul durchzuführenden Aufgaben werden in einzelnen Tasks im YAML-Format beschrieben. Diese Tasks lassen sich zu so genannten Rollen zusammenfassen, wobei eine Rolle alle Tasks, die notwendig sind, enthalten kann. Mehrere Tasks in einer Rolle kann dazu dienen einen Apache-Webserver automatisch zu installieren und konfigurieren.
In einem Playbook können dann verschiedene Rollen zusammengefasst werden. Ein Playbook beschreibt dann beispielsweise alle Rollen bzw. Tasks, die notwendig sind, um einen LAMP-Stack auszurollen. So ist nur einmal Aufwand notwendig das entsprechende Playbook zusammenzustellen. Die inbetriebnahme des neuen Servers geschieht dann automatisiert.

Hierbei lassen sich die Aufgaben über Variablen dynamisch gestalten und über ein sogenanntes Inventory auf dem bzw. den gewünschten Servern ausführen. Somit ist es kein Problem mit Ansible einzelne oder auch große Serverfarmen einfach zu steuern.

Die Möglichkeiten sind fast grenzenlos.

 

entwicklung-prozess

Vorteile:

  • Zentrale Systemkonfiguration
  • Fehlerreduktion
  • Wirtschaftlichkeit und Effizenzsteigerung
  • Nachvollziehbarkeit
  • Schneller Rollout von Systemen

 

Gerne unterstützen wir Sie bei Ihrem Automatisierungsprojekt und beraten Sie gerne.

Sprechen Sie uns noch heute an.