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

Detaillierte Erläuterung des Linux-Befehls zur Änderung des Hostnamens

Linux-Befehl zum Ändern des Hostnamens 1. Wenn Si...

Zwei Methoden zur Implementierung der Mysql-Remoteverbindungskonfiguration

Zwei Methoden zur Implementierung der Mysql-Remot...

Verwenden von Apache ab zum Durchführen von HTTP-Leistungstests

Mac wird mit Apache-Umgebung geliefert Öffnen Sie...

Reagiert auf verschiedene Arten, Parameter zu übergeben

Inhaltsverzeichnis Übergeben von Parametern zwisc...

JavaScript zum Hinzufügen und Löschen von Nachrichten im Message Board

Dieser Artikel zeigt ein kleines Beispiel für das...

Detaillierte Erklärung zum MySQL-Index

Inhaltsverzeichnis 1. Index-Grundlagen 1.1 Einlei...

Zwei Möglichkeiten zum Erstellen von Docker-Images

Inhaltsverzeichnis Aktualisieren Sie das Bild von...

Verwendung der Vue3-Tabellenkomponente

Inhaltsverzeichnis 1. Ant Design Vue 1. Offiziell...

JavaScript Canvas implementiert die Bewegung des Balls entlang der Maus

In diesem Artikelbeispiel wird der spezifische Co...

So verstehen Sie das Ref-Attribut von React genau

Inhaltsverzeichnis Überblick 1. Erstellen eines R...

So exportieren Sie MySQL-Abfrageergebnisse in CSV

Um MySQL-Abfrageergebnisse in CSV zu exportieren,...

So starten Sie die RabbitMq-Software automatisch, wenn CentOS gestartet wird

1. Erstellen Sie ein neues Rabbitmq im Verzeichni...

Beispiele für die Implementierung und Verwendung von geplanten MySQL-Aufgaben

Dieser Artikel veranschaulicht anhand von Beispie...