Was ist Ansible? Ansible ist ein Open Source DevOps Tool, das Unternehmen bei der Orchestrierung (Installation/Bereitstellung, der Konfiguration/Verwaltung, den Updates, usw.) von Software und ganzen Servern unterstützt. Die Bereitstellung ist unkompliziert. Es nutzt SSH für die Kommunikation zwischen Servern. Ansible verwendet das Playbook, um Automatisierungsjobs zu beschreiben. Playbook verwendet eine sehr einfache YAML Sprache.
Wie Ansible angefangen hat und gewachsen ist.
Ansible für Anfänger - Ansible-Grundlagen und ihre Funktionsweise | Geekflare
Einführung in Ansible | Informatik Aktuell
Ansible Einführung - Blog - mobilistics.de
https://www.biteno.com/tutorial/ansible-tutorial-einfuehrung/
Installieren und Konfigurieren von Ansible unter Ubuntu 20.04 | DigitalOcean
Wie funktioniert Ansible?
Ansible ist eine radikal einfache IT-Automatisierungs-Engine, die Cloud-Bereitstellung, Konfigurationsmanagement, Anwendungsbereitstellung, interne Orchestrierung und viele andere IT-Anforderungen automatisiert.
Ansible modelliert deine IT-Infrastruktur, indem du in Ansible beschreibst, wie deine Systeme miteinander zusammenhängen, anstatt dass du jeweils nur ein System verwaltest.
Ansible ist einfach bereitzustellen, weil es keine Agenten und keine zusätzliche benutzerdefinierte Sicherheitsinfrastruktur braucht. Ansible verwendet eine sehr einfache Sprache (YAML in Form von Ansible Playbooks), mit der du deine Automatisierungsjobs auf eine Art und Weise beschreiben kannst, die einfachem Englisch ähnelt.
Hier bekommst du einen schnellen Überblick, damit du die Dinge im Kontext sehen kannst. Weitere Informationen findest du auch unter docs.ansible.com.
EFFIZIENTE ARCHITEKTUR
Ansible stellt eine Verbindung zu deinen Knoten (Servern, Nodes) her und sendet kleine Programme, sogenannte “Ansible-Module”, an diese. Diese Programme werden als Ressourcenmodelle des gewünschten Systemzustands geschrieben. Ansible führt diese Module dann aus (standardmäßig über SSH) und entfernt sie, wenn sie fertig sind.
Deine Modulbibliothek (Ansible-Client) kann sich auf jedem Computer befinden, es sind keine Server, Dämonen oder Datenbanken erforderlich. Du arbeitest in deinem Terminal auf der Command-Zeile, mit deinem Texteditor (nano, etc) und wahrscheinlich einem Versionskontrollsystem, um Änderungen an deinen Inhalten verfolgen zu können.
SSH-SCHLÜSSEL sind deine Freunde
Passwörter werden unterstützt, aber SSH-Schlüssel mit ssh-agent sind eine der besten Möglichkeiten, Ansible zu verwenden. Root-Anmeldungen sind nicht erforderlich. Du kannst dich als beliebiger Benutzer anmelden und dann als su oder sudo die Befehle ausführen lassen.
Das “autorisierte_ Schlüssel” -Modul von Ansible ist eine großartige Möglichkeit, mit Ansible zu steuern, welche Computer auf welche Hosts zugreifen können.
ssh-agent bash
ssh-add ~ / .ssh / id_rsa
Verwalte deinen Bestand in einfachen Textdateien
Standardmäßig stellt Ansible mithilfe einer sehr einfachen INI-Datei dar, welche Computer verwaltet werden, und ordnet alle verwalteten Computer in Gruppen deiner Wahl ein.
Um neue Computer hinzuzufügen, ist kein zusätzlicher SSL-Signaturserver erforderlich, sodass du problemlos entscheiden kannst, warum ein bestimmter Computer aufgrund unklarer NTP- oder DNS-Probleme nicht verbunden wurde.
So sieht eine einfach Text-Inventardatei aus:
[webservers]
www1.example.com
www2.example.com
[dbservers]
db0.example.com
db1.example.com
Sobald Inventar-Hosts aufgelistet sind, können ihnen Variablen in einfachen Textdateien (in einem Unterverzeichnis mit dem Namen ‘group_vars/’ oder ‘host_vars/’) oder direkt in der Inventar-Datei zugewiesen werden.
Verwendung von Ansible für die Ausführung paralleler AD-HOC Aufgaben
Sobald du eine Instanz zur Verfügung hast, kannst du ohne zusätzliche Einrichtung sofort mit ihr sprechen:
ansible all -m ping
ansible foo.example.com -m yum -a "name=httpd state=installed"
ansible foo.example.com -a "/usr/sbin/reboot"
Beachte, dass WiR Zugriff auf zustandsbasierte Ressourcenmodule haben und Raw-Befehle ausführen können. Diese Module sind extrem einfach zu schreiben und Ansible wird mit einer Flotte von ihnen geliefert, sodass der Großteil deiner Arbeit bereits erledigt ist.
Ansible enthält eine riesige Toolbox mit integrierten Modulen.
PLAYBOOKS CODE: Einfach + kraftvoll automatisieren
Mit Playbooks Code kannst du mehrere Bereiche deiner Infrastruktur in deiner Topologie fein orchestrieren und dabei sehr detailliert steuern, wie viele Computer gleichzeitig bearbeitet werden sollen. Hier beginnt Ansible am interessantesten zu werden.
Der Ansible Ansatz für die Orchestrierung ist von fein abgestimmter Einfachheit geprägt, da WiR der Meinung sind, dass dein Automatisierungscode durchaus viele Jahren Sinn machen soll, ohne dass du dir spezielle Syntax Regeln oder Funktionen merken musst.
So sieht PLAYBOOK CODE aus. Beachte bitte, dies hier ist nur ein Muster - besuche docs.ansible.com für die vollständige Dokumentation und alles, was möglich ist.
- hosts: webservers
serial: 5 # Computer gleichzeitig aktualisieren
roles:
- common
- webapp
- hosts: content_servers
roles:
- common
- content
Eine Beispiel app_config.yml könnte so aussehen:
- yum: name={{contact.item}} state=installed
with_items:
- app_server
- acme_software
- service: name=app_server state=running enabled=yes
- template: src=/opt/code/templates/foo.j2 dest=/etc/foo.conf
notify:
- restart app server
In der Ansible-Dokumentation wird dies viel ausführlicher gezeigt. Du kannst noch viel mehr tun, darunter:
- Nimm Maschinen in und aus Load Balancern und Überwachungsfenstern.
- Lasse einen Server die IP-Adresse aller anderen Server anhand der Fakten zu diesen bestimmten Servern kennen - und verwenden Sie diese, um Konfigurationsdateien dynamisch zu erstellen.
- Lege einige Variablen und Eingabeaufforderungen für andere fest und lege die Standardeinstellungen fest, wenn sie variabel sind.
- Verwende das Ergebnis eines Befehls, um zu entscheiden, ob ein anderer ausgeführt werden soll.
Es gibt viele erweiterte Möglichkeiten, aber es ist einfach, loszulegen.
Am wichtigsten ist, dass die Sprache lesbar und transparent bleibt und du niemals explizite Ordnungsbeziehungen deklarieren musst oder Code in einer Programmiersprache schreiben musst.
- eBOOK: Ansible Automation für SysAdmins - Eine Kurzanleitung zu Ansible.
- Verwendung von Ansible zum Patchen von Systemen und Installieren von Anwendungen.
- 10 Ansible Module, die Sie kennen müssen.
- Richte in 20 Minuten ein Ansible-Labor ein.
- Mein erster Tag mit Ansible.
- Weitere eBOOKs zu Ansible auf opensource.com
- ProxmoX mit Ansible automatisieren.
- Proxmox-Container mit Ansible bereitstellen.