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

Schnelle und sichere Methode zum Umbenennen einer MySQL-Datenbank (3 Arten)

Inhaltsverzeichnis So benennen Sie eine MySQL-Dat...

Implementierung von MySQL Select in der Unterabfrageoptimierung

Die folgende Demonstration basiert auf MySQL Vers...

Grundlagen der funktionalen Programmierung in JavaScript

Inhaltsverzeichnis 1. Einleitung 2. Was ist funkt...

Zusammenfassung häufig verwendeter SQL-Operationen in MySQL-Tabellen

1. Sehen Sie sich die Feldtypen in der Tabelle an...

Linux-Tutorial zum Ersetzen von Zeichenfolgen mit dem Befehl sed

Um eine Zeichenfolge zu ersetzen, müssen wir das ...

Eine umfassende Analyse der Möglichkeiten von Nginx

Vorwort Dieser Artikel konzentriert sich nur dara...

MySQL 5.6.23 Installations- und Konfigurations-Umgebungsvariablen-Tutorial

In diesem Artikel finden Sie das Installations- u...

Beispielcode für HTML-Listenfeld, Textfeld und Dateifeld

Dropdown-Feld, Textfeld, Dateifeld Der obere Teil...

Detaillierte Beschreibung des MySQL-Ersetzens in der Verwendung

Die Ersetzungsanweisung ähnelt im Allgemeinen der...

Vue implementiert die Funktionen Vergrößern, Verkleinern und Ziehen

In diesem Artikelbeispiel wird der spezifische Co...

vue-table implementiert das Hinzufügen und Löschen

In diesem Artikelbeispiel wird der spezifische Co...

Probleme bei der Verwendung der Rich-Text-Bearbeitung mit Wangeditor in Vue

wangEditor ist ein webbasierter Rich-Text-Editor,...