In diesem Blogpost schauen wir uns an, wie wir eine einfache statische Seite via gitlab.com deployt.
Vorraussetzungen
- Account bei gitlab.com
- Ein Repository in welchem man Administrator ist
- Git-Bash oder ein anderes Linux-Terminal, wenn auf Windows
SSH-Keys
Erstellen eines SSH-Keys
Um später den Gitlab-Runner zu berrechtigen, dass dieser per SSH auf den Ziel-Server zugreifen darf, erstellen wir ein neues Key-Pair, welches ausschließlich dafür verwendet wird.
Dieses Keypair erstellen ich nach dem vom Martin Leyrer empfohlenen Aufbau aus seinem Talk “Besser Leben mit SSH”.
| |
Bitte nicht vergessen den Pfad ~/your/own/path/... zu ersetzen, da ihr ansonsten, unter Umständenen
euren bereits vorhanden SSH-Key durch den Deployment-Key ersetzt. Die Dummy-Mail foo@ba.de sollte
ebenso durch eine passende von euch getauscht werden. Beispielsweise: deployment@euredomain.com oder noreply@euredomain.com.
Hinterlegen des SSH-Keys
Nachdem das Keypair erzeugt wurde, kann der Public-Key auf eurem Zielserver hinterlegt werden. Je nach Hoster kann dies über GUI oder per SSH/FTP geschehen.
Um euch den Public-Key auszugeben, könnt ihr im Terminal den cat-Befehl nutzen.
| |
Anschließend diesen bei eurem Hoster hinterlegen. Sollte das per SSH oder FTP geschehen, dann müsst ihr euren Public-Key
in die authorized_keys kopieren, die findet ihr meist unter ~/.ssh/.
Repository auf dem Server auschecken
Mittels eines Deploy-Tokens werden wir unseren Ziel-Server berechtigen auf das Gitlab-Repository zuzugreifen.
Deploy Token erstellen
Um ein Token zu erstellen navigieren wir in Gitlab wie zu Settings > Repository > Deploy Token. Dort klicken wir auf Add token und erhalten die Ansicht aus dem Screenshot.
In dieser Ansicht vergeben wir einen Namen und Usernamen für das Token, sowie alle Leserechte. Schreibrechte werden in Regel nicht benötigt.

Nach Klick auf Create Deploy Token bekommen wir unseren gewählten Usernamen sowie ein zufälliges Passwort ausgegeben.
Git clone ausführen
Nun nachdem wir das Deploy-Token haben, können wir unser Repository auf dem Server auschecken. Dazu verbinden wir uns per SSH mit dem Server und klonen am gewünschten Ort unser Repository.
| |
gitlab-ci.yml anlegen
Nun legen wir die gitlab-ci.yml an und hinterlegen die notigen Variablen in Gitlab.
Nachfolgend habe ich ein Template vorbereitet, welches die Variablen SSH_PRIVATE_KEY und SSH_CONNECTION erwartet.
Diese Variablen müssen in Gitlab in eurem Repository unter Settings > CI/CD > Variables hinterlegt werden.

Wenn diese Variablen hinterlegt sind, könnt ihr anschließende gitlab-ci.yml zu eurem Projekt hinzufügen.
Diese ist so vorkonfiguriet, dass sie beim Merge nach dev auf euer DEV-System deployt und mittels release-... Tag auf live
deployt.
| |