Zurück zum Blog

Wie man die automatische Bereitstellung mit Git auf einem VPS konfiguriert

Wie man die automatische Bereitstellung mit Git auf einem VPS konfiguriert

Git ist das beliebteste Versionskontrollsystem im Bereich der Softwareentwicklung. Es ist Open-Source und wird seit 2005 aktiv gepflegt von Linus Torvalds, dem berühmten Schöpfer von Linux. Heute nutzt eine erstaunliche Anzahl von Softwareprojekten (einschließlich kommerzieller) Git für die Versionsverwaltung.

Git folgt einer verteilten Architektur, was es zu einem perfekten Beispiel für ein DVCS (Distributed Version Control System) macht. Mit Git können wir sowohl ein lokales als auch ein Remote-Repository gleichzeitig verwalten. In dieser Anleitung zeigen wir, wie man ein automatisches Deployment eines Git-Projekts mit einem VPS konfiguriert.

Voraussetzungen

In dieser Anleitung gibt es ein lokales Repository und ein Remote-Repository auf dem VPS. Das lokale Repository wird Änderungen an das Remote-Repository übertragen. Vom Remote-Repository aus können wir die Änderungen in den beta oder  live Branch übertragen. Um dies zu erreichen, müssen Sie sich zuerst um einige Voraussetzungen kümmern.

Um eine sichere Verbindung zum VPS herzustellen, verwenden wir SSH. Erfreulicherweise unterstützt Git auch SSH als Protokoll zur Verbindung mit Remote-Repositories. Diese Anleitung befasst sich mit der Konfiguration von SSH zur Verbindung mit Remote-Servern unter Ubuntu.

Konfigurieren des VPS

Auf unserem Remote-Server haben wir die folgende Konfiguration:

  • Live-Verzeichnis: /var/www/dummy-domain.com
  • Server-Repository: /var/repo/site.git

Vom lokalen Rechner aus überträgt Git die Updates in das VPS-Repository. Im VPS-Repository konfigurieren wir ein Skript, mit dem Git diese automatisch in das Live-Verzeichnis überträgt. Es ist auch möglich, ein Repository für beta-Releases zu konfigurieren.

  • Erstellen der Repositories

Verbinden Sie sich mit dem VPS und erstellen Sie die Repository-Verzeichnisse:

Deployment with Git screenshot 1

Als Nächstes initialisieren Sie das Git-Repository:

Deployment with Git screenshot 2

Hier beschreibt das Flag --bare , dass es keine Quelldateien geben wird, sondern nur die Komponenten der Versionskontrolle.

  • Hooks

Als Nächstes konfigurieren wir die Hooks für das Repository. Jedes Git-Repository enthält einen Ordner namens hooks. Er enthält Beispieldateien, die als Vorlage für Hooks und verschiedene benutzerdefinierte Aktionen dienen.

Laut der offiziellen Dokumentation von Git gibt es drei Arten von Hooks:

  • pre-receive: Er wird ausgeführt, sobald der Server eine Push-Anforderung empfängt.
  • post-receive: Er wird ausgeführt, wenn eine Push-Anforderung abgeschlossen ist.
  • update: Ähnlich wie pre-receive. Er wird jedoch einmal pro Branch ausgeführt.

Führen Sie im Verzeichnis des Repositories den Befehl ls aus:

Deployment with Git code screenshot 3

Wechseln Sie das aktuelle Verzeichnis zu hooks:

Deployment with Git code screenshot 4

Erstellen Sie nun das Skript post-receive :

Geben Sie im Skript den folgenden Code ein. Achten Sie darauf, die Verzeichnispfade entsprechend anzupassen:

Deployment with Git code screenshot 6

Speichern Sie die Datei und schließen Sie den Editor. Machen Sie die Datei ausführbar:

Deployment with Git code screenshot 7

Nun wird Git jedes Mal, wenn ein Push abgeschlossen ist, in das Skript post-receive schauen und die Dateien entsprechend platzieren.

Konfigurieren des lokalen Rechners

Der Remote-Server ist bereit, eingehende Updates des Git-Projekts zu empfangen. Als Nächstes konfigurieren wir das lokale Repository so, dass es den VPS als Remote-Git-Server verwendet.

Erstellen wir ein Beispiel-Verzeichnis für das Git-Projekt:

Configuring the Local Machine

Deployment with Git code screenshot 8

sample Git project directory:

Initialisieren Sie nun das Repository:

Deployment with Git code screenshot 9

Wir müssen den Remote-Pfad des Repositories deklarieren. Hier werden wir uns auf den Remote-Speicherort als den live -Branch beziehen. Führen Sie dann den folgenden Befehl aus:

sudo git remote

Testen wir es aus. Wir haben dem Projektverzeichnis ein Shell-Skript hinzugefügt:

project directory

Fügen Sie als Nächstes die Datei zum Projekt hinzu und führen Sie einen Commit aus:

Deployment with Git code screenshot 10

Mit dem nächsten Befehl übertragen wir das Projekt auf den live-Server:

Deployment with Git code screenshot 11

Git verbindet sich über SSH mit dem VPS. Wenn die SSH-Verbindung so konfiguriert wurde, dass ein Passwort verwendet wird, fragt Git nach dem Authentifizierungspasswort.

Beta-Repository

Was ist, wenn das Projekt nicht in einem Schritt bereitgestellt werden soll? Vielleicht erfordert es weitere Tests in einem beta-Verzeichnis. Mit der bisher beschriebenen Methode können wir einen weiteren Branch im VPS erstellen, der als beta-Branch bezeichnet wird.

  • Konfigurieren des Beta-Branches auf dem VPS

Zuerst müssen wir die Verzeichnisse für den VPS erstellen. Verbinden Sie sich mit dem VPS und erstellen Sie ein Verzeichnis unter /var/www:

Jetzt benötigen wir ein Git-Repository, das als beta-Branch fungiert:

Repository initialisieren:

sudo git init

Implementieren Sie wie zuvor ein post-receive-Skript:

sudo nano

Geben Sie danach den folgenden Code ein:

GNU nano

Speichern Sie die Datei und schließen Sie den Editor. Markieren Sie post-receive als ausführbare Datei:

sudo chmod
  • Hinzufügen des Beta-Repositorys auf dem lokalen Rechner

Wir sind nun bereit, das beta-Repository zu unserem lokalen Repository hinzuzufügen. Führen Sie im lokalen Projektverzeichnis den folgenden Git-Befehl aus:

Voila! Das lokale Repository ist nun mit dem Remote-Beta-Repository konfiguriert. Versuchen Sie, Änderungen zu übertragen:

sudo git add
  • Wechsel von Beta zu Live im VPS

Nehmen wir an, alle Änderungen haben sich im beta Repository angesammelt. Wie übertragen Sie die Änderungen in das live Repository? Das ist ganz einfach. Innerhalb des beta Repositorys auf dem VPS fügen wir das lokale live Repository hinzu. Dann übertragen wir einfach das beta Release in das live Repository.

Verbinden Sie sich mit dem VPS und führen Sie die folgenden Befehle aus:

Dann können Sie das beta-Release auf live:

sudo git push live master

Fazit

Diese Anleitung zeigt erfolgreich, wie Sie einen VPS als Remote-Repository für Ihr Git-Projekt konfigurieren und verwenden. Der VPS kann automatisch die neuesten Codes und Dateien ohne komplexe Prozesse bereitstellen. Er kann auch als Zentrum für die Zusammenarbeit mehrerer Entwicklungsteams dienen.

Mit Hilfe von Git können Sie einen einfachen Mechanismus für die automatische Bereitstellung einrichten. Für ein ordnungsgemäßes Projektmanagement wird jedoch empfohlen, ein Tool wie GitLab zu verwenden. Die folgende Anleitung zeigt die Installation und Bereitstellung von GitLab auf einem VPS, der mehrere Projekte verwaltet. Sie können sich auch ansehen, wie Sie GitLab Continuous Integration (CI) Pipelines auf Ubuntu 20.04 einrichten.

Viel Spaß beim Programmieren!

author

Hark Labs

Autor · CloudSigma

Preslav Dobrev ist ein kreativer Designer bei CloudSigma und konzentriert sich auf eine konsistente Unternehmensidentität durch traditionelle und innovative Marketingkanäle. Er versteht es meisterhaft, künstlerische Vision mit strategischem Marketing zu verbinden, um wirkungsvolle Markengeschichten zu schaffen.

Kommentare

Noch keine Kommentare. Schreiben Sie den ersten.