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

Kennen Sie die Bedeutung von Sonderzeichen in URLs?

1.# # stellt eine Position auf einer Webseite dar...

JavaScript entfernt unnötige Eigenschaften eines Objekts

Inhaltsverzeichnis Beispiel Methode 1: Löschen Me...

Detaillierte Schritte zum Erstellen eines Vue-Scaffolding-Projekts

Vue-Gerüst -> vue.cli Erstellen Sie schnell ei...

So verbinden Sie Django 2.2 mit einer MySQL-Datenbank

1. Beim Ausführen des Projekts werden folgende Fe...

So erkennen Sie mit Apache Tika, ob eine Datei beschädigt ist

Apache Tika ist eine Bibliothek zur Dateityperken...

Lösung für den Absturz der Grafikkarte auf Linux-Servern

Wenn die Auflösung der Anmeldeoberfläche besonder...

Ideen zum Erstellen von Welleneffekten mit CSS

Zuvor habe ich mehrere Möglichkeiten vorgestellt,...

Der Unterschied zwischen br und br/ in HTML

Antwort von Stackflow: Einfaches <br> genügt...

HTML-Tutorial: Sammlung häufig verwendeter HTML-Tags (6)

Diese eingeführten HTML-Tags entsprechen nicht un...

Implementierungsprinzip und Prozessanalyse der TCP-Leistungsoptimierung

Drei-Wege-Handshake-Phase Anzahl der Wiederholung...

Wesentliche bedingte Abfrageanweisungen für MySQL-Datenbanken

Inhaltsverzeichnis 1. Grundlegende Grammatik 2. F...

Entwerfen Sie einen Datensammler mit Vue

Inhaltsverzeichnis Szenario Kernthemen Statusüber...

Beispielcode zur Implementierung des Bildschubladeneffekts mit CSS3

Wie üblich posten wir zuerst den Bildeffekt: Das ...

react+antd.3x implementiert IP-Eingabefeld

In diesem Artikel wird der spezifische Code von r...