Ansible-Lab: eine Maschine mit einem Playbook konfigurieren, im Browser

In diesem Lab erhält jede lernende Person eine eigene Ubuntu-Maschine und ein unfertiges Ansible-Playbook. Die Lernenden vervollständigen es so, dass es ein Paket installiert, aus einer Vorlage mit einer Variablen eine Datei erzeugt und eine systemd-Unit-Datei schreibt, führen es dann ein zweites Mal aus und sehen, dass sich nichts ändert. Auf dem Computer der lernenden Person wird nichts installiert, und ein Skript bewertet das Ergebnis, Sie müssen also nicht jede Maschine einzeln lesen.

Was die Lernenden lernen

Was ein Playbook ist: eine Liste von Aufgaben in YAML, die jeweils ein Modul nennen, das eine Arbeit erledigt. Variablen und eine Vorlage, die daraus eine Datei ausfüllt. Der Unterschied zwischen der Beschreibung des Zustands, in dem eine Maschine sein soll, und dem Eintippen der Befehle, die sie dorthin bringen. Vor allem Idempotenz: Ein gutes Playbook, zweimal ausgeführt, hinterlässt die Maschine so, wie der erste Lauf sie hinterlassen hat, und die Zusammenfassung am Ende sagt changed=0.

Die Aufgabe

Das Lab hinterlässt im Home-Verzeichnis ein Projekt: ein Inventar mit dieser einen Maschine über eine lokale Verbindung, eine Einstellungsdatei, eine Vorlage mit einer Variablen und ein Playbook, in dem drei Aufgaben fehlen. Aufgabe 1 ist ein Paket, tree. Aufgabe 2 ist die Datei /etc/ansible-lab/welcome.txt, aus der Vorlage erzeugt, im Besitz von root mit Modus 0644. Aufgabe 3 ist die Unit-Datei /etc/systemd/system/lab-greeter.service, deren Beschreibung die Variable enthält. Die README sagt, was bei jeder zu tun ist, und nennt keine Tasks, Module oder Lösungen. Die lernende Person schreibt nur die Datei: Der Dienst wird nicht gestartet.

Im Browser ausführen

VM-Labs werden als Lab-Aufgabe in einem Modul gestellt, und das Beispiel steht auf der Seite des Labs. Die Maschine ist klein: eine CPU, 1 GB Arbeitsspeicher und 10 GB Festplatte.

  1. Lab hinzufügen. Fügen Sie in einem Modul, das Sie unterrichten, eine Aufgabe hinzu und wählen Sie die Karte „Ubuntu-VM-Lab“. Die Seite zeigt statt einer Compose-Datei eine kurze Beschreibung der Maschine.
  2. Vom Beispiel ausgehen. Die Seite bietet fertige Labs als Ausgangspunkt an. Wählen Sie „Ansible-Grundlagen“. Ein Beispiel zu verwenden ersetzt den Text, und „Rückgängig“ bringt Ihren zurück.
  3. Veröffentlichen und eine eigene Kopie starten. Veröffentlichen Sie, dann „Starten“. Das Einrichtungsskript des Labs installiert beim ersten Start der VM Ansible aus dem Archiv von Ubuntu und schreibt das Projekt und die README, in etwa zehn Sekunden.
  4. Terminal öffnen. Öffnen Sie sein Terminal und lesen Sie README.md im Home-Verzeichnis: Sie nennt die drei Aufgaben, die im Playbook zu vervollständigen sind, und verrät keine der Lösungen.

Eine Basics-Lektion zu diesem Lab

Ansible Basics ist eine kleine Lektion, die in diesem Lab durchgearbeitet wird, einer Ubuntu-VM: Jeder Schritt ist erklärt und hat eine Schaltfläche „Ausführen“, die ihren Befehl in das Terminal der Maschine tippt und zeigt, was ausgegeben wurde. Lernende listen das Projekt auf, lesen das unfertige Playbook, führen es aus und sehen, dass es nichts ändert, und fragen ein Modul, ob der Ordner des Labs schon existiert.

Die Lektion sieht sich um und überlässt die eigentliche Aufgabe des Labs, das Vervollständigen des Playbooks, den Lernenden, sie verteilt also keine Lösungen. Sie ist absichtlich klein: Sie zeigt Lehrkräften, was eine in einem Lab durchgearbeitete Lektion ist, und das Lab erledigt den Rest. Kopieren Sie sie in ein eigenes Modul, um sie zu ändern.

Wie bewertet wird

Das Lab hat eine Prüfung. Sie läuft nach einem frischen Start auf einer Kopie der gespeicherten Maschine und sieht daher nur, was die lernende Person gespeichert hat. Sie liest das Playbook und weist eines zurück, das aus shell-, command-, raw- oder script-Tasks besteht oder diese in einem Include oder einer Rolle versteckt. Sie liest das gespeicherte Paket und die Dateien. Dann führt sie das Playbook der lernenden Person zweimal mit einem Standortnamen aus, den niemand kennt: Die erzeugten Dateien müssen diesen Namen tragen, was eine von Hand getippte Datei nicht tut, und der zweite Lauf muss changed=0 melden, was ein Task, der jedes Mal etwas ändert, nicht tut. Die erste Zeile der Ausgabe der Prüfung sagt, was nicht stimmt.

Was sie nicht verhindern kann, ist eine entschlossene lernende Person mit Administratorrechten auf der eigenen Maschine, die Ansible selbst manipulieren könnte. Es ist eine Prüfung für den Unterricht, kein Beweis.

  1. Zuweisen. Weisen Sie das Lab wie jede Aufgabe zu, auf Wunsch mit Fälligkeitsdatum. Jede lernende Person erhält eine eigene VM, die zwischen den Sitzungen erhalten bleibt.
  2. Prüfung ausführen. Klicken Sie in der Zeile einer lernenden Person in der Klassenliste auf „Prüfung ausführen“. Das startet eine Kopie ihrer gespeicherten Maschine, die nicht zurückgespeichert wird, führt das Prüfskript des Labs als root aus und zeigt, ob es bestanden wurde, was es ausgegeben hat und wann. Die lernende Person erfährt das Ergebnis nicht.
  3. Bewerten. Lesen Sie die erste Zeile der Ausgabe der Prüfung: Sie sagt, was nicht stimmt, etwa eine Datei, die die Variable nicht enthält, oder die Aufgabe, die sich beim zweiten Lauf geändert hat. Geben Sie die Arbeit mit einer Begründung zur Überarbeitung zurück, wenn mehr nötig ist.

Die Definition auf GitHub

Die Datei ist die gesamte Lab-Definition, derselbe Text, den die Plattform ausführt: Größe, Einrichtungsskript, README und Prüfung. Kopieren Sie sie und ändern Sie das Paket, die Pfade oder die Aufgaben, um ein eigenes Lab zu erstellen.

Häufige Fragen

Startet die Prüfung den Dienst?
Nein. Sie liest die Unit-Datei und startet sie nie: Im Lab geht es darum, die Datei mit Ansible zu schreiben, und bewertet werden Besitzer, Modus und Inhalt der Datei.
Kann das Lab auch Terraform vermitteln?
Nicht in diesem Lab. Die Maschine erreicht nur das Archiv von Ubuntu, PyPI, npm und GitHub, und Terraform lädt seine Provider aus einer Registry, die die Maschine nicht erreichen kann, daher wird nur Ansible angeboten. Ansible wird beim Start der VM aus dem Archiv von Ubuntu installiert.
Was verwaltet das Playbook?
Die VM selbst, über eine lokale Verbindung, da jede lernende Person eine Maschine hat. Die echten Befehle funktionieren: ansible-playbook, ansible-doc und --check für einen Probelauf.