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

Vue.js verwaltet die Kapselung von Hintergrundtabellenkomponenten

Inhaltsverzeichnis Problemanalyse Warum Kapselung...

So stellen Sie Dienste in Windows Server 2016 bereit (Grafisches Tutorial)

Einführung Wenn eine große Anzahl an Systemen ins...

Beispielcode zur Implementierung einer Upload-Komponente mit Vue3

Inhaltsverzeichnis Allgemeine Entwicklung von Upl...

Zusammenfassung der MySQL-Datenmigration

Inhaltsverzeichnis Vorwort: 1. Über die Datenmigr...

Grafisches Tutorial zur MySQL8-Installationsversion

Installation Die erforderlichen Unterlagen finden...

MAC+PyCharm+Flask+Vue.js-Build-System

Inhaltsverzeichnis Konfigurieren Sie node.js+nvm+...

So lösen Sie das domänenübergreifende Front-End-Problem mithilfe des Nginx-Proxys

Vorwort Nginx (ausgesprochen „Engine X“) ist ein ...

So verwenden Sie die Baidu Map API im Vue-Projekt

Inhaltsverzeichnis 1. Registrieren Sie ein Konto ...

Lösung für das Problem mit verstümmelten chinesischen MySQL-Zeichen

1. Die chinesischen verstümmelten Zeichen erschei...

Analyse des Implementierungsprozesses der drei Modi des VMWare-Netzwerkadapters

Drei Modi Bridged (Bridge-Modus), NAT (Network Ad...