Der Prozess der Bereitstellung eines Projekts auf einem anderen Host mit Jenkins

Der Prozess der Bereitstellung eines Projekts auf einem anderen Host mit Jenkins

Umfeld

Hostname IP-Adresse Aufschlag
Jenkins 192.168.216.200 Kater, Jenkins
Server 192.168.216.215 Kater


// Firewall von Selinux ausschalten

//Installieren Sie den Verpackungsbefehl, git
[root@jenkins ~]# yum -y installiere Maven
[root@jenkins ~]# yum -y installiere git

//Passwortfreie Anmeldung konfigurieren [root@localhost ~]# ssh-keygen 
Generieren eines öffentlichen/privaten RSA-Schlüsselpaars.
Geben Sie die Datei ein, in der der Schlüssel gespeichert werden soll (/root/.ssh/id_rsa): 
Passphrase eingeben (leer, wenn keine Passphrase vorhanden ist): 
Geben Sie dieselbe Passphrase erneut ein: 
Ihre Identifikation wurde in /root/.ssh/id_rsa gespeichert.
Ihr öffentlicher Schlüssel wurde in /root/.ssh/id_rsa.pub gespeichert.
Der Schlüsselfingerabdruck ist:
SHA256:npcyZyHpOPmqGL1nbpZRj7UYULZxJhvNIcDg2G9Qvso [email protected]
Das Randomart-Bild des Schlüssels ist:
+---[RSA 3072]----+
| .oooBo+. |
| + oo. Xo |
| . + ..o |
| o.o.. |
| +.S*.. |
| o o.=oooo |
| . E +o* = |
| o .*o * |
| . oBo.. |
+----[SHA256]-----+
[root@localhost ~]# ssh-Kopie-ID [email protected]
/usr/bin/ssh-copy-id: INFO: Quelle des/der zu installierenden Schlüssel: „/root/.ssh/id_rsa.pub“
/usr/bin/ssh-copy-id: INFO: Versuch, sich mit den neuen Schlüsseln anzumelden, um alle bereits installierten herauszufiltern
/usr/bin/ssh-copy-id: INFO: 1 Schlüssel muss noch installiert werden -- wenn Sie jetzt dazu aufgefordert werden, installieren Sie die neuen Schlüssel
Passwort von [email protected]: 

Anzahl hinzugefügter Schlüssel: 1

Versuchen Sie nun, sich mit „ssh ‚[email protected]‘“ beim Computer anzumelden.
und überprüfen Sie, ob nur die gewünschten Schlüssel hinzugefügt wurden.

[root@localhost ~]# ssh [email protected]
Letzte Anmeldung: Mi Okt 20 11:03:43 2021 von 192.168.216.200
[root@localhost ~]# beenden
AbmeldenVerbindung zu 192.168.216.215 geschlossen.

Rufen Sie das Jenkins-Terminal auf



Pipeline
    Agent beliebig
    
    Stufen {
        Bühne('Erstellen') {
            Schritte {
                // Holen Sie sich Code aus einem GitHub-Repository
                git 'https://gitee.com/forgotten/tomcat-java-demo.git' #Laden Sie das Paket herunter und stellen Sie sicher, dass der Git-Befehl auf dem Host verfügbar ist // Führen Sie Maven auf einem Unix-Agenten aus.
                sh "mvn -Dmaven.test.failure.ignore=true clean package" #In War-Pakete packenh "mv target/ly-simple-tomcat-0.0.1-SNAPSHOT.war target/myapp.war" #Paketnamen ändern// Um ​​Maven auf einem Windows-Agent auszuführen, verwenden Sie
                // bat "mvn -Dmaven.test.failure.ignore=true sauberes Paket"
                
            } 
        }        
        Bühne("veröffentlichen"){
            Schritte{
                sh "ssh [email protected] 'tar -Jcf /opt/backup/webapps-\$(date +%Y-%m%d).tar.xz /usr/local/tomcat/webapps/*'" #Sichern Sie das ursprüngliche Projekth "scp target/myapp.war [email protected]:/usr/local/tomcat/webapps/" #Übertragen Sie das Paket auf den Zielhosth "ssh [email protected] '/usr/local/tomcat/bin/catalina.sh stop;sleep 3;/usr/local/tomcat/bin/catalina.sh start'" #Starten Sie das generierte Projekt neu}
        }
    }
}


Gehen Sie zur Überprüfung zum Zielhost

Manuelle Bereitstellung

//Firewall ausschalten, Selinux

// Stellen Sie sicher, dass der Git-Befehl vorhanden ist, und ziehen Sie das bereitgestellte Projektpaket [root@jenkins opt]# git clone https://gitee.com/forgotten/tomcat-java-demo.git
Klonen in „Tomcat-Java-Demo“ …
remote: Objekte aufzählen: 558, fertig.
remote: Objekte zählen: 100 % (558/558), fertig.
remote: Objekte komprimieren: 100 % (316/316), fertig.
Remote: Gesamt 558 (Delta 217), wiederverwendet 558 (Delta 217), Pack-wiederverwendet 0
Empfangene Objekte: 100 % (558/558), 5,08 MiB | 673,00 KiB/s, fertig.
Verarbeitungsdelta: 100 % (217/217), fertig.
[root@jenkins opt]# ls
Tomcat-Java-Demo

//Paket, stellen Sie sicher, dass der MVN-Befehl vorhanden ist [root@jenkins opt]# cd tomcat-java-demo/
[root@jenkins tomcat-java-demo]# ls
db Dockerfile LIZENZ README.md
deploy.yaml jenkinsfile pom.xml src // Alle Dateien mit pom.xml werden mit mvn gepackt [root@jenkins tomcat-java-demo]# mvn clean package
[root@jenkins tomcat-java-demo]# mv target/ly-simple-tomcat-0.0.1-SNAPSHOT.war target/myapp.war
[root@jenkins tomcat-java-demo]# ls Ziel/
Klassen ly-simple-tomcat-0.0.1-SNAPSHOT Maven-Status
Generierte Quellen Maven-Archiver myapp.war

// Stellen Sie sicher, dass ein passwortfreier Login möglich ist, starten Sie den serverseitigen Tomcat über SSH und übergeben Sie dann das bereitzustellende Paket [root@jenkins tomcat-java-demo]# scp target/myapp.war [email protected]:/usr/local/tomcat/webapps/
// Tomcat wird automatisch dekomprimiert. Nach einer Weile können Sie das entsprechende Verzeichnis der Website aufrufen, um das neu bereitgestellte Projekt anzuzeigen.

Dies ist das Ende dieses Artikels über die Verwendung von Jenkins zum Bereitstellen eines Projekts auf einem anderen Host. Weitere Informationen zum Bereitstellen eines Jenkins-Projekts auf einem anderen Host 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:
  • Erstellen einer geplanten Build-Aufgabe für Jenkins
  • Fügen Sie globale SSH-Anmeldeinformationen für Jenkins hinzu
  • Jenkins-Konfiguration, Maven-Projektpaketierung, Bereitstellung und Freigabe
  • So implementieren Sie Shell-Skripting, um Aufgaben regelmäßig in Jenkins auszuführen
  • Beheben Sie das Fehlerproblem, das bei der Integration von Jenkins mit SonarQube aufgetreten ist
  • Agile Entwicklung mit automatisierten Build-Tools von Jenkins

<<:  So erstellen Webdesigner Bilder für Retina-Displays

>>:  Verwendung von Markierungs-Tags im CSS-Listenmodell

Artikel empfehlen

Detaillierte Erklärung der benutzerdefinierten Swiper-Komponente in JavaScript

Inhaltsverzeichnis Effektanzeige Komponenteneinst...

Die wichtigsten Unterschiede zwischen MySQL 4.1/5.0/5.1/5.5/5.6

Einige Befehlsunterschiede zwischen den Versionen...

Reines CSS zum Hinzufügen von Stil zur ausgewählten Implementierung (kein Skript)

Ändern Sie den Standardstil der Auswahl, normalerw...

Nginx-Konfiguration zum Erreichen eines Lastenausgleichs auf mehreren Servern

Nginx-Lastausgleichsserver: IP: 192.168.0.4 (Ngin...

Zusammenfassung der grundlegenden Verwendung von CSS3 @media

//Grammatik: @media Medientyp und | nicht | nur (...

Beispielcode für die HTML-Formatierung von JSON

Ohne weitere Umschweife werde ich den Code direkt...

Detaillierte Erklärung und Zusammenfassung der URL zur Datenbankverbindung

Detaillierte Erklärung und Zusammenfassung der UR...

Vue-Grundlagen-Tutorial: Bedingtes Rendering und Listen-Rendering

Inhaltsverzeichnis Vorwort 1.1 Funktion 1.2 So st...

Ein kurzes Verständnis der drei Prinzipien zum Hinzufügen von MySQL-Indizes

1. Die Bedeutung von Indizes Indizes werden verwe...

Starten Sie die auf Docker basierende nginxssl-Konfiguration

Voraussetzungen Ein Cloud-Server (centOS von Alib...

Web 2.0: Ursachen und Lösungen der Informationsüberflutung

<br />Informationsduplikation, Informationsü...