Aktueller Deployment Prozess am Beispiel des Seltmann-Servers (Alle Pfade beziehen sich auf den CONTROL-Server!, wenn das nicht der fall ist, dann schreibe ich das explizit dazu!):
- Wir machen ein Push in den Master des Seltmann-Repos. Gitlab legt eine Pipeline an (CI/CD). Diese wird vom Gitlabrunner verarbeitet. In der Pipeline wird der Inhalt des git repos im Ordner /webs/gitlabrunner/[%VERZEICHNIS DES RUNNERS%]/seltmann-shop/ geclont und daraus ein Release.tar.gz in /releases/seltmann geschrieben. Zusätzlich wird dieses Release für Rundeck per json file (/releases/releases-seltmann.json) bereit gestellt.
- Wenn wir nun eine neue (oder alte) Version des Shops per Rundeck ausrollen passiert folgendes:
2.1 Rundeck kopiert das Release.tar.gz nach /webs/seltmann-shop/releases/ und entpackt es in einen Release-Ordner (zum Beispiel: /webs/seltmann-shop/releases/live-seltmann.2019.08.19-11.20.22.4f7413530b53097cc7c3c5f830926bad7e980767). Dann werden noch ein paar Anpassungen vorgenommen (löschen nicht benötigter Dateien usw.).
2.2. Es wird ein Sym-Link von /webs/seltmann-shop/live (webroot des WSX) nach /webs/webdata/releases/live-seltmann.2019.08.19-11.20.22.4f7413530b53097cc7c3c5f830926bad7e980767 angelegt. (ACHTUNG, dieser Pfad exisitiert auf dem Control nicht, dass ist der Pfad, der vom Webserver als Webroot genutzt wird!). Alle Dateien in diesem Schritt gehören dem User rundeck und der Gruppe rundeck. Die Shopfiles selbst werden beim Deploy per chown auf apache:apache gesetzt.
2.3. Verzeichnisse, die nicht im Git-Repo enthalten sind (Produkt-Bilder, Export-Files, caches, usw.) werden per Sym-Link von /webs/seltmann-shop/shared/live/ eingebunden.
2.4. Der Webserver wird neu gestartet um die neuen Verzeichnisse zu erkennen.
