So können Sie Ihre Infrastruktur automatisieren

Die Entwicklung einer Software gehört bereits seit längerem zu unserem Portfolio. Geprägt sind die Arbeiten bei der Softwareentwicklung von sich wiederholenden Aufgaben wie Verwaltung, Testen und Verteilen von Änderungen. Automatisierungstools helfen an dieser Stelle, indem sie genau diese Aufgaben selbstständig übernehmen. Eins davon ist Ansible. Doch was ist Ansible eigentlich?

Was ist Ansible eigentlich?

Ansible ist ein Tool zur Konfiguration und Administration von Servern, um sich wiederholende Aufgaben zu automatisieren. Unabhängig, ob es sich um ein einzelnes System oder sehr viele handelt: Ansible ist als Open Source Software unter der GNU General Public License für DevOps auf der ganzen Welt verfügbar. Ansible zeichnet sich durch die folgenden Funktionen aus:

  • Agentlos: Es muss keine zusätzliche Software auf den Clients installiert werden.
  • Python: Als Basis dient die robuste und zuverlässige Programmiersprache Python.
  • SSH: Kommunikation zwischen Server und Client erfolgt über das sichere Netzwerkauthentifizierungsprotokoll SSH.
  • Infrastructure as a code: Die Konfigurationen werden zentral in sogenannten „Playbooks“ mithilfe der Programmiersprache YAML definiert.
  • Push-Architektur: Die Konfiguration von Clients über Ansible kann parallel erfolgen. Hierdurch entsteht eine hohe Skalierbarkeit der Infrastruktur.

 

Wie funktioniert Ansible genau?

Die Funktionsweise von Ansible kann mithilfe von drei zentralen Ressourcen beschrieben werden: Module, Inventar und Playbooks.

  • Bei den Modulen handelt es sich um Unterroutinen oder Unterprogramme, mit denen sich immer wieder auszuführenden Aufgaben in geschlossene Einheiten auslagern lassen. Module sind sowohl in Playbooks, als auch über die Kommandokonsole nutzbar. Ziel der Modul-Technik ist es, wiederkehrende Aufgaben oder Standardaufgaben nicht immer wieder neu programmieren zu müssen. Anwender von Ansible können selbst Module entwerfen und programmieren oder die mit Ansible ausgelieferten Module verwenden. Die Module sind mit beliebigen Programmiersprachen erstellbar.

  • Das Inventar fast die Knoten zusammen, die von den Managementsystemen per Ansible erreichbar und konfigurierbar sein sollen und beschreibt sie. Für die verschiedenen Knoten existieren im Inventar Einträge, die Information wie IP-Adressen oder Hostnamen beinhalten. Inventare können statisch bereitgestellt oder dynamisch aus verschiedenen Quellen bezogen werden. Sie sind parallel nutzbar und lassen das Gruppieren der Knoten zu.

  • Im Playbook ist der gewünschte Zustand eines zu konfigurierenden oder zu verwaltenden Knotens beschrieben. Es enthält die Vorgaben, die automatisiert abzuarbeiten sind – in Form einzelner Arbeitsanweisung. Innerhalb eines Playbooks sind beliebige Shell-Kommandos zur Ausführung der Aufgaben auf dem Zielknoten nutzbar. Playbooks können beispielsweise Anweisungen zur Installation einer einzelnen Software, zur Ausführung bestimmter Konfigurationseinstellungen oder zur kompletten Einrichtung des Systems enthalten. WindowsPowershell-Befehle werden ebenfalls unterstützt. Die Playbooks verwenden unter anderem YAML als beschreibende Sprache.

Das sind die Vorteile der Automatisierung über Ansible

Automatisierungstools wie Ansible ermöglichen eine einfachere Bereitstellung, erleichtern den Betrieb sowie die Skalierung (etwa bei schnellem Unternehmenswachstum). Des Weiteren bietet Ansible folgende wichtige Vorteile:

  • Zentrale Konfigurationsmöglichkeit
  • Reduzierung von Konfigurationsfehlern
  • Erhöhung von Qualität und Wirtschaftlichkeit
  • Erhöhung der Transparenz durch Reproduktionsmöglichkeit

Infrastruktur Automatisierung lohnt sich

Infrastruktur Automatisierung ist aufgrund der Komplexität mit Sicherheit kein einfaches Themengebiet. Es bedarf einiges an Aufwand sowohl die Technologie als auch die Konzepte und die Systeme zu erlernen und sicher zu beherrschen. Doch aufgrund des enormen Potenzials lohnt sich unserer Meinung nach die Zeit dafür zu investieren. Denn jedes Unternehmen profitiert von stabilen und nachvollziehbaren IT-Systemen, einfachen Deployment Prozessen und automatisierten Lösungen.

Die TIMETOACT GROUP nutzt diese Vorteile bereits für die Konfiguration der eigenen Infrastruktur. So findet zum Beispiel die Erstkonfiguration von neuen virtuellen Maschinen über Ansible statt. Des Weiteren konnten wir unsere komplexe Atlassian Umgebung von Jira und Confluence inklusive Datenbankserver, Fileserver-Cluster und reverse Proxys mithilfe von Ansible als Code definieren und deployen. Eine Reproduktion der Systeme ist dadurch jederzeit und ohne Probleme möglich. 

Autor

Alexander Nilsson
Atlassian ExpertTIMETOACT Software & Consulting GmbHKontakt