So verwenden Sie Gitlab-ci zur kontinuierlichen Bereitstellung auf Remotecomputern (ausführliches Tutorial)

So verwenden Sie Gitlab-ci zur kontinuierlichen Bereitstellung auf Remotecomputern (ausführliches Tutorial)

Kurz gesagt, heute sprechen wir über die Verwendung von Gitlab-CI zum automatischen Bereitstellen auf Remoteservern.

Freunde, die diesen Artikel gelesen haben, werden bemerken, dass ich die Site automatisch auf dem Gitlab-Runner-Server bereitgestellt habe. Dieses Mal verwenden wir ssh , um auf einem Remote-Computer bereitzustellen (trennen den CI-Server und den Bereitstellungsserver, um Ressourcenraub zu vermeiden).

SSH-Anmeldung ohne Passwort

Auch hier handelt es sich bei CI/CD im Wesentlichen um eine Skripterstellung unserer manuellen Integrations- und Kopierbereitstellungsmethoden. Der wichtige Aspekt der Remotebereitstellung besteht darin, eine kennwortfreie Steuerung zu erfordern.

Damit Gitlab Runner auf einem Remotecomputer bereitgestellt werden kann, muss der Remotecomputer gitlab runner -Konto vertrauen.

  • Führen Sie zunächst su gitlab-runner aus, um zum gitlab-runner -Konto zu wechseln
  • Verwenden Sie den Befehl ssh-keygen auf Ihrer CI-Maschine (Master), um einen öffentlichen Schlüssel zu erstellen. Verwenden Sie ssh-keygen -t rsa um ihn zu erstellen. Das Programm fragt Sie nach dem Speicherverzeichnis. Wenn Sie es nicht ändern müssen, drücken Sie einfach ein paar Mal die Eingabetaste, um die Datei id_rsa.pub im Verzeichnis ~/.ssh in das Verzeichnis ~/.ssh der gesteuerten Maschine zu kopieren, und dann
  • Importieren Sie den Dateiinhalt in die Datei ~/.ssh/authorized_keys
Gastgeber:
scp /home/gitlab-runner/.ssh/id_rsa.pub
Die kontrollierte Partei:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/autorisierte_schlüssel

4. Legen Sie die Berechtigungen für die gesteuerte Maschine fest:
~/.ssh -Berechtigungen sind auf 700 eingestellt;
~/.ssh/authorized_keys Berechtigungen sind auf 600 gesetzt

Danach kann sich die Master-CI-Maschine ohne Kennwort bei der Remote-Maschine anmelden.

Wie kann ich kontinuierlich bereitstellen?

Kontinuierliche Bereitstellung mithilfe des Image-Tags: Das GitLab-Projekt muss nur den Tag eingeben --> den Image-Erstellungsjob ausführen (mit diesem Git-Tag als Image-Tag) --> den Bereitstellungsjob ausführen, den Git-Tag abrufen --> das Tag-Image bereitstellen

  • CI_COMMIT_REF_NAME ruft den Zweig- oder Tagnamen ab, für den das Projekt erstellt wird
  • Legen Sie image: ${DOCKER_REGISTRY}/eap/eap-front-end:${TAG} in docker-compose.yml fest, um die während der Bereitstellung eingefügte Tag-Variable zu erkennen.
build_image:Front-End:
 Stufe: Build_Image
 Skript:
 - Docker-Build -t $DOCKER_REGISTRY_HOST/eap/eap-front-end:$CI_COMMIT_REF_NAME.  
 - Docker-Anmeldung $DOCKER_REGISTRY_HOST -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD
 – Docker-Push $DOCKER_REGISTRY_HOST/eap/eap-front-end:$CI_COMMIT_REF_NAME    
 Stichworte:  
 -mein-Tag
 nur:  
 - Stichworte
 
Bereitstellung: Alpha:
 Phase: Bereitstellen
 Variablen:
 Bereitstellungspfad: "/home/eap/website"
 Skript:
 - ssh -t ***@10.202.42.252 „cd $deploy_path und export TAG=$CI_COMMIT_REF_NAME und docker-compose -f docker-compose.yml Build und docker-compose -f docker-compose.yml Up -d“ 
 Stichworte:
 -mein-Tag
 nur:
 - Stichworte

Die oben stehende gelbe Hintergrundzeile beschreibt die Skriptmethode für die SSH-Remoteanmeldung -> zum Bereitstellungsverzeichnis wechseln -> das Git-Tag dieses Builds einfügen -> Containerbereitstellung ausführen.

Das ist alles, dieser Artikel zeichnet den Prozess der kontinuierlichen Bereitstellung von Gitlab-CI auf Remotecomputern auf: Die passwortfreie Anmeldung per SSH habe ich vor Kurzem gemeistert, und die Methode der kontinuierlichen Bereitstellung ist einfach und praktisch.

Damit ist dieser Artikel zur Verwendung von Gitlab-ci zur kontinuierlichen Bereitstellung auf Remote-Computern abgeschlossen (ausführliches Tutorial). Weitere Informationen zur kontinuierlichen Bereitstellung von Gitlab-ci auf Remote-Computern finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • So stellen Sie Gitlab schnell mit Docker bereit
  • Detaillierte Erläuterung der Anwendungsbereitstellungspraxis für Docker + Jenkins + Gitlab + Django
  • Docker-Compose - Bereitstellung der chinesischen Gitlab-Version per Mausklick - Methodenschritte
  • So stellen Sie Gitlab mit Docker-Compose bereit

<<:  Eine Kurzanleitung zu MySQL-Indizes

>>:  React realisiert sekundäre Verknüpfung (linke und rechte Verknüpfung)

Artikel empfehlen

So ändern Sie den MySQL-Zeichensatz utf8 in utf8mb4

Wenn für MySQL 5.5 der Zeichensatz nicht festgele...

So löschen Sie die Hintergrundfarbe des A-Tags, wenn in H5 darauf geklickt wird

1. Die blaue Farbe des Tags wird aufgehoben, wenn...

Detaillierte Erklärung zur Verwendung verschiedener MySQL-Indizes

1. Langsames Abfrageprotokoll 1.1 MySQL-Protokoll...

Eine kurze Diskussion über MySql-Ansichten, Trigger und gespeicherte Prozeduren

Sicht Was ist eine Ansicht? Welche Rolle spielt e...

Installation von VMware Workstation unter Linux (Ubuntu)

Wenn Sie nicht wissen, wie das System auf dem Com...

Detaillierte Erläuterung der MySQL-Filterreplikationsideen

Inhaltsverzeichnis MySQL gefilterte Replikation I...

So konvertieren Sie MySQL-Bin-Log-Protokolldateien in SQL-Dateien

mysqlbinlog-Version anzeigen mysqlbinlog -V [--ve...

CSS-Implementierungscode für die Textausrichtung

Beim Erstellen von Formularen kommt es häufig vor...

So wandeln Sie lokale Variablen in JavaScript in globale Variablen um

Zuerst müssen wir den Selbstaufruf der Funktion k...

Nodejs-Fehlerbehandlungsprozessaufzeichnung

In diesem Artikel wird der Verbindungsfehler ECON...