Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Server automatisch einrichten mit Ansible

Nach dieser Lektion: Ich kann ein Playbook lesen und erklären, was es auf einem Rechner herstellt.

Lektion, 45 Min.3 BefehleAnsible-Lab: eine Maschine mit einem Playbook konfigurieren, im Browser

Dreißig Rechner, dreißigmal derselbe Fehler

Ansible richtet Rechner nach einer Beschreibung ein, die in einer Datei steht. So wird jeder Rechner genau gleich.

Eine Schule stellt dreißig Rechner für einen neuen Computerraum auf. Von Hand dauert das Stunden, und bei jedem Rechner schleicht sich ein anderer Fehler ein. Mit einer Beschreibung tippst du einmal.

Am Ende dieser Lektion

Notiz

Ich kann ein Playbook lesen und erklären, was es auf einem Rechner herstellt.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
Ansibleein Programm, das Rechner nach einer Beschreibung einrichtet
Playbookdie Datei, in der die Beschreibung steht
Aufgabeein einzelner Schritt im Playbook
Modulein fertiger Baustein für eine Art von Aufgabepackage
Zielzustandso soll der Rechner nachher aussehen
Idempotentein zweiter Lauf ändert nichts mehr

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Bevor du anfängst

Notiz

Drück oben in der Leiste auf Lab starten. Das Lab ist eine ganze Ubuntu-Maschine für dich allein und braucht einige Minuten zum Hochfahren, denn Ansible wird erst beim Start installiert. Jede Schaltfläche Ausführen tippt ihren Befehl in das Terminal.

Du beschreibst das Ergebnis, nicht den Weg

Ein Skript sagt dem Rechner Schritt für Schritt, was er tun soll. Ein Playbook sagt, wie der Rechner am Ende aussehen soll.

Das ist der Zielzustand. Ansible schaut nach, was schon stimmt, und ändert nur den Rest.

Von Hand oder mit Playbook

Von HandMit Playbook
Dreißig RechnerDreißigmal dieselben KlicksEin Lauf je Rechner
FehlerBei jedem Rechner andersBei allen gleich, also leicht zu finden
NachweisNiemand weiß, was getan wurdeDie Datei zeigt es und lässt sich aufheben
Neuer Rechner späterAlles noch einmal erinnernDasselbe Playbook laufen lassen

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Ein Playbook besteht aus Aufgaben mit Modulen

Jede Aufgabe hat einen Namen, ein Modul und die Angaben dazu. Das Modul ist der fertige Baustein, zum Beispiel für ein Programm, einen Ordner oder eine Datei.

Die Tabelle zeigt ein Beispiel. Die Datei im Lab ist in YAML geschrieben, hier siehst du denselben Inhalt als Tabelle.

Ein Playbook für einen Vereinsrechner

Nr.Name der AufgabeModulAngabenZielzustand
1Programm htop installierenpackagename: htopvorhanden
2Ordner für Vereinsdaten anlegenfilepath: /srv/vereinein Ordner
3Begrüßung schreibentemplateVorlage und ZielDatei mit dem Vereinsnamen

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

In den Ordner des Projekts wechseln

Befehl
cd ~/ansible-lab

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Das Playbook ansehen

Befehl
cat site.yml

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Das Playbook unverändert ausführen

Befehl
ansible-playbook site.yml

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Ein zweiter Lauf ändert nichts mehr

Am Ende eines Laufs steht eine Zusammenfassung. Dort zählt changed=, wie viele Aufgaben etwas verändert haben.

Ein gutes Playbook ist idempotent. Beim ersten Lauf steht dort eine Zahl, beim zweiten changed=0, weil schon alles stimmt.

Zwei Läufe derselben Aufgabe

AufgabeErster LaufZweiter Lauf
Modul package mit htop vorhandenchanged: wird installiertok: ist schon da
Modul file mit Ordner vorhandenchanged: wird angelegtok: ist schon da
Befehl, der nur eine Zeile anhängtchanged: eine Zeile mehrchanged: noch eine Zeile mehr

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Ein häufiger Fehler

Warnung

Viele glauben, ein Playbook sei nur ein Shell-Skript in anderer Schreibweise. Das stimmt nicht. Ein Modul prüft zuerst den Zustand und handelt nur, wenn etwas fehlt. Ein bloßer Befehl tut es jedes Mal, und das Ergebnis verändert sich bei jedem Lauf.

Weiterführend: einen Probelauf lesen

Mit ansible-playbook site.yml --check --diff läuft ein Playbook zur Probe. Es zeigt, was sich ändern würde, ohne etwas zu ändern.

Lies dazu die README in deinem Home-Ordner. Schreib in zwei Sätzen auf, welche drei Arbeiten das Lab von dir verlangt und woran du erkennst, dass du fertig bist.

Über dieses Lab und seinen Quellcode: Ansible-Lab: eine Maschine mit einem Playbook konfigurieren, im Browser

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.