Anweisungen zum Bereitstellen von Projekten auf Remotecomputern mithilfe des Publish Over SSH-Plugins in Jenkins

Anweisungen zum Bereitstellen von Projekten auf Remotecomputern mithilfe des Publish Over SSH-Plugins in Jenkins

Verwendung des Plugins „Veröffentlichen über SSH“

Bevor Sie „Publish Over SSH“ verwenden, müssen Sie einen privaten SSH-Schlüssel erstellen. Konfigurieren Sie die kennwortfreie Anmeldung zwischen Computern. Angenommen, die IP von Maschine A ist 192.168.AA.AAA, die von Maschine B: 192.168.BB.BBB, Maschine A kann sich ohne Kennwort bei Maschine B anmelden und Maschine B kann sich ohne Kennwort bei Maschine A anmelden. Die Produktionsmethode lautet:

Geben Sie Maschine A ein und führen Sie aus:

CD ~
ssh-keygen -t rsa

Der folgende Befehl gibt an, dass Sie sich über den Computer 192.168.AA.AAA ohne Kennwort bei dem Computer 192.168.BB.BBB anmelden können.

SSH-Kopie-ID 192.168.BB.BBB 

Die Überprüfungsmethode lautet: Führen Sie ssh 192.168.BB.BBB auf Computer A aus und führen Sie dann ifconfig aus, um die aktuelle IP zu überprüfen. Wenn Sie feststellen, dass die IP des Computers 192.168.BB.BBB geworden ist, bedeutet dies, dass die kennwortfreie Anmeldeeinstellung erfolgreich war.

Geben Sie Maschine B ein und führen Sie aus:

CD ~
ssh-keygen -t rsa
SSH-Kopie-ID 192.168.AA.AAA

Die Überprüfungsmethode lautet: Führen Sie ssh 192.168.AA.AAA auf Maschine B aus und führen Sie dann ifconfig aus, um die aktuelle IP zu überprüfen. Wenn Sie feststellen, dass die IP der Maschine 192.168.BB.BBB geworden ist, bedeutet dies, dass die kennwortfreie Anmeldeeinstellung erfolgreich war.

Konfigurieren Sie die Veröffentlichung über SSH in der Systemkonfiguration

Gehen Sie zu Jenkins->Systemverwaltung->Systemeinstellungen und konfigurieren Sie „Veröffentlichen über SSH“

Parameterbeschreibung:

Passphrase: Passwort (Schlüsselpasswort, sofern Sie es festgelegt haben)
Pfad zum Schlüssel: der Pfad zur Schlüsseldatei (privater Schlüssel)
Schlüssel: Kopieren Sie den privaten Schlüssel in dieses Feld
Disable exec: Deaktivieren der Ausführung von Befehlen. Private Konfiguration:
SSH-Servername: ein Name für den Server (was auch immer Sie wollen)
Hostname: Der Hostname oder die IP-Adresse, mit der Sie eine SSH-Verbindung herstellen müssen (IP wird empfohlen)
Benutzername: Benutzername
Remote-Verzeichnis: Remote-Verzeichnis
Verwenden Sie eine Kennwortauthentifizierung oder einen anderen Schlüssel: Sie können die öffentliche Konfiguration ersetzen (wählen Sie die öffentliche Konfiguration aus und erweitern Sie sie, sie ist sehr erweiterbar).
Erweitert für private Konfiguration:
Port: Port (Standard 22)
Timeout (ms): Timeout (Millisekunden). Der Standardwert ist akzeptabel.
Disable exec: Deaktivieren Sie laufende Befehle
Testkonfiguration: Verbindung testen

Konfigurieren Sie SSH im erstellten Projekt:

Vor der Ausführung müssen Sie mit der Execute-Shell-Konfiguration in Build–>Post Steps zusammenarbeiten, den scp-Befehl ausführen und das zu kopierende Projekt remote auf den Remote-Computer kopieren. Der Inhalt der Execute-Shell ist wie folgt:

scp -r /root/.jenkins/workspace/youxuan_api_pre/qt360-web/target/youxuan_api [email protected]:/usr/local/jenkinsTempFolder/
export BUILD_ID=TÖTEN SIE MICH NICHT

Klicken Sie auf das erstellte Projekt -> Konfigurieren -> Vorgänge nach dem Build, wählen Sie „Build-Artefakte über SSH senden“ und konfigurieren Sie wie folgt (Hinweis: Der folgende Exec-Befehl ist ein Skript, das auf dem Remotecomputer ausgeführt wird):

Der Inhalt des Skripts ist wie folgt:

#!/bin/bash
echo "==================== Projekt bereitstellen==========================="
ps -aux | grep /usr/local/tomcat/ | grep -v grep > tomcat_info.txt
sed 's/ / /g' tomcat_info.txt > tomcat_info1.txt
sed 's/ / /g' tomcat_info1.txt > tomcat_info.txt
sed 's/ / /g' tomcat_info.txt > tomcat_info1.txt 
Katze tomcat_info1.txt | cut -d' ' -f 2 > tomcat_info.txt
für Zeile in „cat tomcat_info.txt“
Tun
  töten -9 $zeile
Erledigt
cd /usr/local/tomcat/webapps
rm -rf youxuan_api*
mv /usr/local/jenkinsTempFolder/youxuan_api /usr/local/tomcat/webapps
/etc/init.d/tomcat starten
synchronisieren
echo 3 > /proc/sys/vm/drop_caches
echo "====================Projekt erfolgreich bereitstellen==========================="

Parameterbeschreibung:

SSH-Servername: Wählen Sie einen Namen, den Sie in den Systemeinstellungen konfiguriert haben
Transfersatz Quelldateien: Hochzuladende Dateien (Hinweis: relativ zum Pfad des Arbeitsbereichs. Sie können mehrere Werte eingeben, wie in der folgenden Konfiguration gezeigt. Standardmäßig werden sie durch getrennt)
Präfix entfernen: Entfernt das Verzeichnis (nur die Verzeichnisse in den Transfer Set-Quelldateien können angegeben werden)
Remote-Verzeichnis: Remote-Verzeichnis (füllen Sie es entsprechend Ihren Anforderungen aus, da ich hier teste und daher faul bin und es nicht ausgefüllt habe. Die Systemkonfiguration wird standardmäßig übernommen.)
Exec-Befehl: Schreiben Sie den Befehl, den Sie ausführen möchten, hinein (die neue Version erfordert, dass sowohl die Transfer Set Source-Dateien als auch der Exec-Befehl ausgefüllt werden, Sie müssen sie nicht ausfüllen. Die alte Version erlaubt Ihnen, nur einen auszufüllen)
gehoben:
Dateien ausschließen: Ausgeschlossene Dateien (nützlich beim Übertragen von Verzeichnissen, verwenden Sie Platzhalter, zum Beispiel: **/*.log, **/*.tmp, .git/)
Mustertrennzeichen: Trennzeichen (Konfigurieren Sie das Trennzeichen der Transfer Set-Quelldateien. Wenn Sie es hier ändern, muss auch der obige Inhalt geändert werden.)
Keine Standardausschlüsse: Deaktivieren Sie die Standardausschlussregeln (weitere Informationen finden Sie in der Hilfe).
Leere Verzeichnisse erstellen: Diese Option ändert das Standardverhalten des Plugins. Das Standardverhalten besteht darin, zu prüfen, ob die Datei vorhanden ist, und, falls vorhanden, ein Verzeichnis zu erstellen, um die Datei zu speichern. Wenn Sie diese Option auswählen, wird ein Verzeichnis zum Speichern der Datei erstellt, auch wenn es ein leeres Verzeichnis ist. (Persönliches Verständnis)
Dateien reduzieren: Laden Sie nur Dateien hoch, erstellen Sie keine Verzeichnisse (außer Remote-Verzeichnisse)
Remote-Verzeichnis ist ein Datumsformat: Das Remote-Verzeichnis erstellt einen Ordner mit einem Datum (das Datumsformat muss im Remote-Verzeichnis konfiguriert werden). Das spezifische Format finden Sie in der folgenden Tabelle:
Remote-Verzeichnis Erstellte Verzeichnisse
'qa-geprüft/'yyyyMMddHHmmss qa-geprüft/20101107154555
'builds/'yyyy/MM/dd/'build-${BUILD_NUMBER}' builds/2010/11/07/build-456 (wenn der Build die Nummer 456 war)
jjjj_MM/'Build'-EEE-t-HHmmss 2010_11/Build-So-7-154555
jjjj-MM-tt_HH-mm-ss 2010-11-07_15-45-55
Exec-Timeout (ms): Das Timeout für die Ausführung des Skripts (in Millisekunden)
Exec in pty: Simulieren Sie ein Terminalausführungsskript
Transferset hinzufügen: Eine Konfiguration hinzufügen

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Wenn Sie mehr darüber erfahren möchten, schauen Sie sich bitte die folgenden Links an

Das könnte Sie auch interessieren:
  • Jenkins kompiliert und veröffentlicht mit SSH
  • Fügen Sie globale SSH-Anmeldeinformationen für Jenkins hinzu

<<:  Grafisches Tutorial zur Installation und Konfiguration der MySQL 5.7.18 Zip-Version (Win7)

>>:  Verwenden Sie Javascript, um eine dynamische QQ-Registrierungsseite zu erstellen

Artikel empfehlen

Die Bedeutung des Statuscodes im HTTP-Protokoll

Ein Statuscode, der eine vorläufige Antwort anzei...

Detaillierte Erklärung der Fallstricke beim Mischen von npm und cnpm

Inhaltsverzeichnis Ursache Grund Einführung in NP...

Praktischer Bericht über die Entwicklung von Vue3- und TypeScript-Projekten

Inhaltsverzeichnis Überblick 1. Kompositions-API ...

Wie verstecke ich einen bestimmten Text in HTML?

Code zum Ausblenden von Text, Ausblenden eines bes...

Lösungen für den Fehler und die Ungültigkeit beim Öffnen von nginx.pid

Inhaltsverzeichnis 1. Problembeschreibung 2. Prob...

Detaillierte Anwendungsfälle von MySql Escape

MySQL-Escape Escape bedeutet die ursprüngliche Se...

MySQLs konzeptionelles Verständnis verschiedener Sperren

Optimistisches Sperren Optimistisches Sperren wir...

Quellcodeanalyse des Nodejs-Modulsystems

Inhaltsverzeichnis Überblick CommonJS-Spezifikati...

Der gesamte Prozess der lokalen Konfiguration des Reverse-Proxys über Nginx

Vorwort Nginx ist ein leichtgewichtiger HTTP-Serv...

Eine kurze Diskussion über JS-Prototypen und Prototypenketten

Inhaltsverzeichnis 1. Prototyp 2. Prototypzeiger:...