Fork me on My GIT

Das automatisierte Testen von automatisierten Systemkonfigurrationen

~3 min read

Das automatisierte Testen von automatisierten Systemkonfigurationen

So hatte ich ihn genannt, den Talk, welchen ich am gestrigen Abend in Darmstadt gehalten habe. Vieles musste einmal gesagt werden, und so manches war in den Dokumentationen nicht so einfach ersichtlich.

Daher hatte ich mich dazu entschieden, einmal meine aktuelle Variante des Testings vor einem interessierten Publikum vorzustellen. Erhofft hatte ich mir so einiges, und etwas Aufregung war natürlich auch dabei. Das erste Mal Vortrag auf einem Chaos-Event.

Ja, von der Menge des Live-Publikums ein wenig enttäuscht, aber dennoch dem Wissen anheim, dass wir weitere Personen "live on Stream" haben, ging es dann los. Und für die Leute, welche mir ggf. nicht ganz folgen können, das Handout zu meinen Slides findet ihr auch hier verlinkt.

Automatisierungen

Aber was ist denn nun so alles zu automatisieren. Natürlich ist der Admin allgemein Faul, daher automatisiert man alles weg, was man öfters machen muss. Doch kann man sich auch sicher sein, dass am Ende das richtige rauskommt ?

Daher musste ich mir mal Gedanken über mögliche Prüfungen machen, um sicherstellen zu können, dass am Ende des Prozesses auch das erwartete erstellt wird. Und natürlich auch die Möglichkeit, bei zukünftigen Anpassungen ebenfalls darauf hingewiesen zu werden, das Ergebnis wieder ordentlich zu validieren.

Molecule

Die Anfänge

Also begab ich mich in das nächste "Rabbit-Hole", und arbeitete mich in ein entsprechendes Testframework ein. "Molecule" ist hier direkt mit dem Ansible-Projekt verbunden, und bot mir die entsprechenden Möglichkeiten. Also erst einmal "rein in das Loch".

Die Ernüchterung

Dann kam der nächste Punkt, wir brauchen ein entsprechendes Testenvironment. Also anhand der Doku geschaut, und OCI-Container sind da ein Mittel der Wahl. Podman ist bereits installiert, und wir testen munter drauf los. Vieles funktioniert, doch stelle ich mir jedes Mal die Frage, ob meine Tests überhaupt auf die Realität abbildbar sind, bzw. ob das Ergebnis meiner Tests überhaupt eine relevante Information ist. Denn das Test-Environment ist ja nicht vergleichbar mit meinem Betriebs-Environment. Es fehlt noch der "Init-Prozess".

Und wieder war das nächste Loch aufgetan. Natürlich hätte man jetzt nach OCI-Containern suchen können, welche über systemd verfügen. Doch anhand meiner bisherigen Erfahrungen stellte sich mir die Frage eher in den Bereich LXC, bzw. system-nspawn, welches ich bereits beides im Einsatz habe. Anhand dessen, und der Tatsache, dass bereits eine Rolle zum Erstellen ensprechender Container unter Verwendung von systemd-nspawn existierte, war hier die Entscheidung relativ einfach.

Molecule erlaubt es, unter Verwendung des "Default-Providers" (Ansible), hier die volle Kontrolle selbst zu übernehmen. Also anhand dessen einmal alles selbst gemacht, und die entsprechenden Tests gebaut. Und siehe da, wir haben etwas fertiggebracht.

Conclusio

Aber was sind wir im Chaos, dem wir unsere Freizeit widmen ? Natürlich fröhliche Entitäten, welche gerne Wissen teilen, und sich selbst hinterfragen.

Also Zielsetzung, einmal die eigene Variante vorstellen, mit anderen interessierten Entitäten diskutieren, und ggf. Verbesserungen einsammeln. Trotz des kleinen Live-Publikums konnte ich doch ein wenig neues Mitnehmen, und hoffentlich konnte ich weitere Live-Zuschauer ebenfalls mit ggf. neuen Informationen versorgen.

Betreffend der Aufzeichnung besteht zudem weitere Hoffnung, dass noch mehr Leute Notiz von diesem Thema nehmen. Vielleicht kommt auch darüber noch die eine oder andere Diskussion zustande.

Somit verbleibe ich als Fazit nach meinem ersten "Chaos-Vortrag": "Ich will mehr von dieser Droge!" Habt Spaß, und vielleicht sehen wir uns auf einer anderen Bühne wieder.

links

social