Wie schreibe ich ein Ansible-Spielbuch?

Bild: Jack Wallen

Ansible ist ein großartiges Tool zum Verwalten einer großen Anzahl von Servern. Mit ihm können Sie unglaublich flexible, automatisierte Aufgaben erstellen, die von einem zentralen Server ausgeführt werden, um auf Remote-Hosts zu agieren. Mit diesen als Playbooks bezeichneten Aufgaben können Sie Verwaltungsaufgaben übernehmen, bei denen Sie sich ansonsten manuell bei jedem Remotecomputer anmelden und diese Befehle einzeln ausführen müssten.

Rechenzentrum muss unbedingt gelesen werden

  • 8 Vorhersagen für Rechenzentren für 2020
  • 7 Netzwerkvorhersagen für 2020: Automatisierung, Edge-Computing, Wi-Fi 6, mehr
  • Best Practices für die Servervirtualisierung und Tipps, was nicht zu tun ist
  • Quantencomputer: Sieben Wahrheiten, die Sie kennen müssen

Ich habe Sie bereits durch den Prozess der Installation von Ansible unter Ubuntu Server 18.04 geführt (siehe: So installieren Sie Ansible unter Ubuntu Server 18.04). Jetzt ist es Zeit zu lernen, wie man ein einfaches Ansible-Spielbuch schreibt. Sobald Sie verstanden haben, wie Playbooks geschrieben sind, können Sie sehr komplexe Skripts erstellen, die eine beliebige Anzahl von Verwaltungsaufgaben auf Ihren Remote-Rechenzentrums-Servern ausführen können.

Was du brauchst

Natürlich muss Ansible installiert sein und ausgeführt werden, wobei die Remote-Hosts konfiguriert sind. Sie benötigen außerdem einen Remote-Linux-Server in Ihrem Rechenzentrum zum Testen und einen Benutzer mit Sudo-Berechtigungen. Ich werde die Erstellung eines Playbooks demonstrieren, das auf einem Remote-Linux-Server ausgeführt wird.

Das Spielbuch

Das Ansible-Playbook besteht aus einer Reihe von Anweisungen, die auf einem einzelnen Host oder einer Gruppe von Hosts ausgeführt werden. Es wird als .yaml-Datei geschrieben (mit der richtigen YAML-Formatierung). Angenommen, Sie möchten einen LAMP-Stack installieren und Ihr Zielserver ist 192.168.1.100. Wir nennen dieses Playbook lampstack.yaml. Der erste Abschnitt (der den LAMP-Stack installiert) dieses Playbooks sieht folgendermaßen aus:

 --- #Install LAMP Stack auf Ubuntu Server - Hosts: ANSIBLE_HOST werden: yes 

Was Sie oben sehen, sind die folgenden:

  • Für die YAML-Formatierung sind drei Striche erforderlich.
  • Die Zeile, die mit # beginnt, ist einfach ein Kommentar, der uns sagt, was die Playbook-Datei ist.
  • Die Hosts-Zeile ist unsere Hosts-Deklaration. Dies wird aus der Datei / etc / ansible / hosts gelesen, daher muss ANSIBLE_HOST ein in dieser Datei aufgelisteter Host sein.
  • Werden: Ja Dies wird auf Ja gesetzt, um die Eskalation von Berechtigungen zu aktivieren.

Der nächste Abschnitt ist der Aufgabenbereich und sieht folgendermaßen aus:

 apt: pkg: - apache2 - mysql-server - php - php-mysql state: present update_cache: yes 

Der obige Abschnitt erklärt:

  • apt: Wir rufen apt an, um Pakete zu installieren
  • pkg: Was folgt, sind die zu installierenden Pakete.
  • -apache2, -mysql-server, -php, -php-mysql gibt an, welche Pakete installiert werden sollen.
  • state: Zeigt an, dass wir die neuesten Pakete installieren.
  • update_cache: Weist apt an, den Cache zu aktualisieren.

Der nächste Abschnitt startet sowohl die Apache- als auch die MySQL-Dienste und sieht folgendermaßen aus:

 - name: apache service starten wird: yes service: name: apache2 status: gestartet aktiviert: ja - name: mysql service starten werden: yes service: name: mysql state: gestartet aktiviert: yes 

Schließlich erstellen wir das Zielverzeichnis (falls die Installation dies nicht tut) und kopieren dann die index.html hinein. Dieser Abschnitt sieht folgendermaßen aus:

 - Name: Zielverzeichnis erstellen Datei: Pfad = / var / www / html Status = Verzeichnismodus = 0755 - Name: Bereitstellen index.html Werden: Ja Kopie: src: /tmp/index.html Ziel: / var / www / html /index.html 

Fügen Sie diese drei Teile in einer einzigen Datei (mit dem Namen lampstack.yaml - Abbildung A ) zusammen und speichern Sie sie.

Abbildung A: Unsere vollständige Playbook-Datei.

Erstellen Sie als Nächstes die Datei index.html mit dem folgenden Inhalt:

Hallo TechRepublic!

Speichern Sie diese Datei als /tmp/index.html .

Bereitstellen des Playbooks

Nachdem unser Playbook fertig ist, können wir es jetzt mit dem folgenden Befehl bereitstellen:

 ansible-playbook lampstack.yml -c paramiko --user = USERNAME --extra-vars "ansible_sudo_pass =" PASSWORD " 

Dabei ist USERNAME ein Remotebenutzer mit Sudo-Berechtigungen und PASSWORD das Sudo-Kennwort dieses Remotebenutzers.

Wenn das Spielbuch richtig geschrieben ist, sollte es sich um alle enthaltenen Aufgaben kümmern. Sie sollten dann in der Lage sein, einen Browser auf http: // SERVER_IP zu verweisen (wobei SERVER_IP die IP-Adresse des Zielhosts ist, definiert in / etc / ansible / hosts) und Hallo, TechRepublic! angezeigt ( Abbildung B ).

Abbildung B: Unsere Datei index.html wird angezeigt.

Und das ist alles, was Sie brauchen, um Ihr erstes Ansible-Playbook zu erstellen. Es gibt noch viel mehr zu lernen, daher empfehle ich, in die offizielle Ansible Playbook-Dokumentation zu gehen und zu lesen, wie man noch komplexere Playbooks erstellt.

Newsletter zu Trends im Rechenzentrum

DevOps, Virtualisierung, Hybrid Cloud, Speicher und betriebliche Effizienz sind nur einige der Themen im Rechenzentrum, die wir hervorheben werden. Wird montags und mittwochs geliefert

Heute anmelden

© Copyright 2021 | pepebotifarra.com