Ansible - einfache Playbook-Beispiele

Bild: Ansible Logo

Nachdem wir uns bereits eingehend mit den Grundlagen und auch schon das benötigte Programmpaket auf unserer Admin-Workstation zur Orchestrierung installiert haben, werden wir uns nun ein paar Beispiele ansehen, wie man sich das Leben mit Ansible-Playbooks leichter gestalten kann.

In den beiden Kapiteln Playbooks und YAML - was ist das? hatten wir uns schon eingehend mit den Hintergrundinformationen zu diesen beiden Themenblöcken beschäftigt, so dass wir uns nun mit unsere Playbooks beschäftigen können.

  1. Benutzer anlegen
    In diesem Beispiel wird gezeigt wie man doch relativ einfachen einen neuen Benutzer auf einem oder mehreren Zielsystemen anlegen kann.

    Doch Achtung: Es zeigt sehr anschaulich, dass es keine gute Idee sein kann, Passworte und ähnliches direkt in einem Playbook und/oder Inventory unverschlüsselt vorzuhalten - kann doch so jeder, der Zugriff auf das Playbook/Inventory hat, unberechtigter Weise Kenntnis von vertraulichen Informationen erlangen!

  2. sudoers anpassen
    Bei unserem zweiten Beispiel wollen wir lediglich dafür sorgen, dass die Nutzer der Gruppe wheel beim Ausführen von Befehlen, die root-Berechtigungen erfordern, ihr Passwort eingeben müssen.

  3. mehrere Benutzer anlegen und SSH-Schlüssel kopieren
    Beim drittem Playbook-Beispiel wollen wir mit Hilfe von Ansible nicht nur ein Admin-Konto sondern gleich mehrere anlegen. Dabei kopieren wir dann auch noch gleich die zugehörigen öffentlichen SSH-Schlüssel an Ort und Stelle. Zu guter Letzt stellen wir noch sicher dass der Eintrag %wheel ALL=(ALL) ALL gesetzt ist.

    WICHTIG: Auch hier gilt die Warnung aus Beispiel 1: Es zeigt sehr anschaulich, dass es definitiv keine gute Idee ist, Passworte und Schlüsselmaterial direkt in einem Playbook und/oder Inventory unverschlüsselt vor zuhalten. Dies gilt um so mehr, wenn man seine Ansible bei GitHub oder GitLab vorhält! Jeder der dort Zugriff auf die Repositories hat, gelangt so ohne grosse Mühe an vertraulichen Informationen!

  4. Bedingtes Kopieren
    Im vierten Beispiel wollen wir die Konfigurationsdatei mailserver.guru.repo für das Repository repo.mailserver.guru auf alle unsere definierten CentOS-Hosts kopieren. Dabei müssen wir natürlich beachten, dass sich die Datei zwischen den Versionen CentOS 7 und CentOS 8 unterscheiden, wenn auch nur geringfügig!

  5. NTP-Daemon chrony installieren und konfigurieren
    In diesem Beispiel wollen wir auf unseren CentOS 8-Hosts den NTP-Deamon chrony installieren und auch entsprechend als Client konfigurieren.

    Dieses Beispiel zeigt sehr schlüssig, dass das „Ver-template'n“ einer Konfigirationsdatei nur bedingt geeignet ist, komplexe Daemon zu konfigurieren. Ein Daemon wie chrony wie in diesem Beispiel mit drei Optionen mag noch handelbar sein, aber z.B. einen Postfix-MTA1) so konfigurieren zu wollen, kann dann mit mehreren Hunderten Optionen schnell zu einem nervenaufreibenden Unterfangen ausarten!

  6. Installation und Konfiguration des chronyd mit Hilfe von Ansible unter Arch Linux
    In diesem Beispiel befassen wir uns mit der Installation und Konfiguration des chrony Timeserver-Clients und -Server unter Arch Linux.

  7. Ansible und Zielhosts ohne Python
    In diesem Konfigurationsbeispiel befassen wir uns nun mit einer Besonderheit in Sachen Zielhosts. Nicht immer hat man auf einem Zielsystem Python zur Verfügung, wie z.B. bei Freifunk-Hardware, die auf gluon und OpenWrt basieren. Aber auch hier gibt es eine Lösungsmöglichkeit, in dem man für diesen speziellen Fall auf das Modul raw zurückgreift.

  8. Mit Hilfe von Ansible einen Offloader auf Basis eines Raspberry 4B bauen
    In diesem Konfigurationsbeispiel wollen wir möglichst einfach und schnell einen Offloader für Freifunk München auf Basis eines Raspberry 4B befassen. Dabei gehen wir auf unterschiedliche Konfigurations-Optionen ein und wollen dennoch die Einstiegshürden für den ungeübteren Ansible und Linux-User möglichst tief ansetzen.
    Die detaillierte Beschreibung hierzu ist im Kapitel Bau eines Freifunk-Offloaders auf Basis eines Raspberry 4B zu finden.

Links


1)
MailTransportAgent
Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
  • linux/ansible/playbooks.txt
  • Zuletzt geändert: 21.03.2024 08:37.
  • von django