Deployment Automation
Ausgangslage
Neue App-Instanzen werden derzeit manuell aufgesetzt — VM provisionieren, Konfigurationen einspielen, Datenbank anlegen, Webserver einrichten. Der Ablauf ist nicht standardisiert, entsprechend unterschiedlich sehen die Installationen aus. Zusätzlich sind die ausgelieferten Konfigurationen offen: Web-UI und API sind weltweit erreichbar und fangen regelmäßig Bot-Traffic ein.
Ziel ist ein reproduzierbarer Deployment-Prozess: Neue Instanzen entstehen ohne händisches Runbook, die Standard-Konfiguration bringt die wesentlichen Schutzmechanismen bereits beim ersten Start mit.
Beispiel-Szenario
Als roter Faden durch die Doku dient ein konkretes Szenario: Für den Kunden Obst Gössl soll eine neue iScan-Instanz aufgesetzt werden. Die typischen Anforderungen daran:
- Geoblocking: Zugriff nur aus der DACH-Region. Anfragen aus anderen Ländern werden verworfen.
- Rate-Limiting: Pro Route konfigurierbar (z.B.
auth/loginstrenger als/) und reaktiv anhand von HTTP-Statuscodes (401-Bruteforce,4xx-Floods). - TLS-Zwang für die EDBS-Anbindung: Der externe EDBS-Server schreibt Daten in die App-DB. Die Verbindung läuft übers Netz und muss SSL-verschlüsselt sein.
Architektur
Vier Komponenten greifen ineinander:
| Komponente | Aufgabe |
|---|---|
| Cloud-Init | Erstkonfiguration der frisch gebooteten VM — installiert den Puppet-Agent und meldet den Host beim Foreman an |
| Foreman | Zentrales Host-Management; gleichzeitig External Node Classifier (ENC) für Puppet und UI für Klassen-Zuweisung sowie Smart-Class-Parameter |
| Puppet | Kompiliert den Katalog und rollt die Konfiguration auf dem Ziel-Host aus |
| Vault | Hält die Secrets (DB-Passwörter, API-Keys); per Hiera-Backend an Puppet angebunden |
Die Detailaufteilung ist in den verlinkten Unterabschnitten beschrieben.
Ablauf
Aus Benutzer-Sicht reduziert sich das Aufsetzen einer Instanz auf wenige Schritte:

Was Cloud-Init und der Puppet-Agent dabei intern tun, ist im Schaubild zusammengefasst. Die ausführliche Variante mit jedem Einzelschritt:

Umsetzung
Die Umsetzung verteilt sich auf drei Dokumente:
- Foreman — Klassen-Struktur des
iteasapps-Puppet-Moduls, Smart-Class-Parameter, Vault-Integration, Klassifizierungsablauf. - Webhost — Webserver-Schicht: Nginx-VHosts, Geoblocking, Per-Route-Rate-Limiting, Fail2Ban.
- Applikation — Pro App-Instanz: System-User, PHP-FPM-Pool, lokale Datenbank, App-DB-Login,
secrets.php.
Weiterführende Ressourcen
- Foreman — Live-Instanz
- Foreman API
- Foreman & Puppet Setup — Allgemeine Einrichtung der Infrastruktur
- Puppet-Modul
iteasapps - Vault
