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

Führen Sie die Schritte zur Verwendung von mock.js im Vue-Projekt aus

Verwenden von mock.js im Vue-Projekt Auswahl des ...

WeChat-Applet implementiert Suchfeldfunktion

In diesem Artikelbeispiel wird der spezifische Co...

So zeigen Sie die IP-Adresse des Docker-Containers an

Ich dachte immer, Docker hätte keine IP-Adresse. ...

Schritte zur Erstellung einer React Fiber-Struktur

Inhaltsverzeichnis React-Fasererstellung 1. Bevor...

Wer ist ein User Experience Designer?

Beängstigend, nicht wahr? Übersetzung im Bild: (v...

Einfache Anwendungsbeispiele für benutzerdefinierte MySQL-Funktionen

Dieser Artikel veranschaulicht anhand von Beispie...

So passen Sie die Bash-Eingabeaufforderung in Linux an

Vorwort Wie wir alle wissen, ist Bash (die Bourne...

Eine kurze Diskussion über ereignisgesteuerte Entwicklung in JS und Nodejs

Inhaltsverzeichnis Ereignisgesteuert und Publish-...

Gemeinsame MySQL-Indexwirksamkeitsbedingungen und Indexungültigkeitsbedingungen

Inhaltsverzeichnis 1. Bedingungen für das Versage...

Detailliertes Tutorial zur Installation von phpMyAdmin unter Ubuntu 18.04

Wir werden phpMyAdmin installieren, damit es mit ...

Implementierung eines einfachen Weihnachtsspiels mit JavaScript

Inhaltsverzeichnis Vorwort Ergebnisse erzielen Co...