Ist-Zustand
Die Bereitstellung von WordPress-basierten Webanwendungen erfolgt aktuell überwiegend manuell. Für jede neue Umgebung wird ein Server angemietet und die benötigten Komponenten einzeln installiert und konfiguriert, darunter:
- Webserver
- Datenbank (z. B. MariaDB)
- Administrationswerkzeuge wie phpMyAdmin
Die Installation und Konfiguration erfolgen nicht standardisiert, sondern abhängig von der ausführenden Person. Dadurch entstehen mehrere Probleme:
- Hoher Zeitaufwand: Jede Umgebung muss erneut manuell eingerichtet werden.
- Fehleranfälligkeit: Tippfehler, vergessene Schritte oder falsche Rechte führen zu instabilen oder unsicheren Systemen.
- Unterschiedliche Systemstände: Entwicklungs-, Test- und Produktivumgebungen unterscheiden sich häufig.
- Schwierige Wartung: Keine zentrale, dokumentierte Definition des Systemzustands.
Soll-ZustandZiel ist eine vollständig automatisierte, standardisierte und sichere Bereitstellung einer WordPress-Umgebung auf einem frisch installierten System. Die Lösung basiert auf folgenden Grundprinzipien:
- Automatisierte Bereitstellung mit Ansible
Ein Ansible-Playbook übernimmt die komplette Installation und Konfiguration (Infrastructure as Code: versionierbar und reproduzierbar).
- Containerbasierte Architektur
Dienste werden in getrennten Containern betrieben:
- WordPress-Container
- MariaDB-Container
- phpMyAdmin-Container
- Integration in Jenkins
Die Bereitstellung wird über einen Jenkins-Job angestoßen. Nach Eingabe der IP-Adresse des Zielservers wird das Ansible-Playbook ausgeführt, wodurch der manuelle Prozess standardisiert wird.
- Sicherheitskonzept
- Einrichtung eines technischen Benutzers „ansible“
- SSH-Zugriff ausschließlich per Key-Authentifizierung
- Der Benutzer ansible darf notwendige Befehle per sudo ohne Passwort ausführen
- Root ist initial per Passwort erreichbar, wird später auf Key-Login beschränkt
- phpMyAdmin zusätzlich per .htaccess geschützt
- WordPress-Backend Anbindung an LDAP für zentrale Benutzerverwaltung