Skip to content

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/login strenger 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:

KomponenteAufgabe
Cloud-InitErstkonfiguration der frisch gebooteten VM — installiert den Puppet-Agent und meldet den Host beim Foreman an
ForemanZentrales Host-Management; gleichzeitig External Node Classifier (ENC) für Puppet und UI für Klassen-Zuweisung sowie Smart-Class-Parameter
PuppetKompiliert den Katalog und rollt die Konfiguration auf dem Ziel-Host aus
VaultHä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:

Ablauf aus Benutzer-Sicht

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

Vollständiger Ablauf

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

Iteas Tools Integration Platform Version v1.0.21

Version: v1.0.21 Version: v1.0.21
Commit: 7a0e1c11
Deployed at: 2026-09-24T13:56:52Z