
Vorwort
Dieser Artikel ist das Ergebnis einer einwöchigen Suche nach sehr fragmentierten Informationen zum Konfigurieren der Webdienstbereitstellung unter Go. Nicht auf Heroku, nicht auf Docker, nicht auf Digital Ocean, sondern nur auf altmodischem VDS mit CentOS 7x64. Aus irgendeinem Grund verfügt das Netzwerk nicht über diese Informationen, und die meisten Tutorials beginnen mit dem Einrichten des Builds und enden mit dem Start von Tests.
Ich werde Sie sofort warnen, dass ich zum ersten Mal den CI / CD-Prozess eingerichtet habe. Dies ist also ein Artikel von Anfänger zu Anfänger.
Sicherlich kann hier viel korrigiert werden, daher werde ich Kommentare mit Freude in den Kommentaren akzeptieren und versuchen, die Änderungen so schnell wie möglich zu aktualisieren. Es ist auch möglich, dass ein solcher Artikel bereits existiert, und ich benutze die Suchmaschine einfach schrecklich. Dann geben Sie bitte einen Link dazu, und in diesem Fall werde ich den Artikel löschen und Asche auf meinen Kopf streuen.
Ausgangsdaten
- VDS-Server
- Betriebssystem: CentOS 7x64
- Gehen Sie Projekt mit der folgenden Struktur:
src/ public/ index.html main.go
Server-Setup: Erstellen Sie einen Dienst
Erstellen Sie zunächst einen Service für unsere Anwendung. In CentOS 7 ist dies ziemlich einfach. Sie müssen ein solches Skript in eine Datei namens serviceName.service schreiben:
[Unit]
Das Skript selbst muss im Ordner etc / systemd / system / abgelegt werden
SSH-Setup
Führen Sie auf dem Server den folgenden Befehl aus:
ssh-keygen -f /etc/ssh/hmp.key
Auf Anfrage
Passphrase eingeben (leer für keine Passphrase)
Geben Sie kein Passwort ein, drücken Sie einfach die Eingabetaste.
Im Ordner / etc / ssh / werden zwei Dateien generiert:
- hmp.key - privater Schlüssel
- hmp.key.pub - öffentlicher Schlüssel
Wir brauchen einen privaten Schlüssel. Zeigen Sie den Inhalt mit dem folgenden Befehl an:
cat /etc/ssh/hmp.key
Es wird ungefähr so aussehen:
-----BEGIN RSA PRIVATE KEY----- { } -----END RSA PRIVATE KEY-----
Alle vollständig in Ihre Zwischenablage kopieren
ACHTUNG! - nicht nur der Schlüssel selbst, sondern auch
----- RSA PRIVATE KEY BEGINNEN ----- und ----- END RSA PRIVATE KEY -----
Gitlab-Setup
Geben Sie zunächst die für das Depot wichtigen Daten ein (Benutzername, Passwort usw.).
Auch wenn Ihr Repository öffentlich ist, bleiben sie geschlossen.
Gehen Sie in Gitlab im Repository zu Einstellungen -> CI / CD -> Variablen. Dort erstellen wir folgende Variablen:
- SSH_PRIVATE_KEY - Fügen Sie hier den im vorherigen Absatz kopierten Wert ein
- USER_PASS - Benutzerkennwort, über das die Anwendung gestartet wird
- USER - Benutzername, von dem aus die Anwendung gestartet wird
- HOST - die Adresse Ihres VDS
- TARGET_DIR_ON_HOST - Der Zielordner, in dem sich Ihr Dienst in meinem Beispiel befindet, ist / username / service /
- SERVICE_NAME - Dienstname
- GROUP_NAME ist Ihr Gitlab-Benutzername
- REPOSITORY_NAME - der Name Ihres Repositorys
Fügen Sie die Datei .gitlab-ci.yml mit dem folgenden Inhalt zum Repository hinzu:
image: golang:latest before_script:
Nach dem Optimieren schieben wir dieses Skript in das Repository und haben eine vorgefertigte Assembly und Bereitstellung. Das ist alles!
Hoffe der Artikel war hilfreich. Bei Fragen und Kommentaren stehe ich Ihnen gerne in den Kommentaren zur Verfügung!