1. Hintergrund Die Projekte des Unternehmens wurden immer manuell mit Maven verpackt, auf den Server hochgeladen und Tomcat geschlossen/geöffnet. Der gesamte Prozess ist zeitaufwändig und arbeitsintensiv. Obwohl alle Prozesse gleichzeitig durch Shell-Skripte gelöst werden können, wäre es zeit- und arbeitssparender, wenn das Jenkins-Plug-In von idea für die automatische Bereitstellung mit einem Klick verwendet werden könnte. Nachfolgend finden Sie ein einfaches Shell-Skript zum Veröffentlichen von Tomcat. Voraussetzung für die Ausführung des folgenden Skripts ist die Installation von Git und Maven auf dem Server. # Beenden Sie zuerst den Tomcat-Prozess kill -9 `ps aux|grep tomcat|grep -v 'grep'| awk 'NR==1{print $2}'` # Wechseln Sie zum Projektspeicherort cd nxyyProjectSource/NXYY # git pull den neuesten Code git pull xxxx # Wechseln Sie zum Code-Speicherort unter dem Projekt cd nxyy # Maven-Verpackung mvn clean mvn install -DskipTests # Legen Sie das War-Paket in die Tomcat-CD cp nxyyProjektquelle/NXYY/nxyy/target/nxyy.war /home/tomcat/webapps # Tomcat starten cd /home/tomcat/bin ./startup.sh # Zeigen Sie das Protokoll an tail -f ../logs/catalina.out Jedes Mal, wenn Sie ein Git-File kopieren, benötigen Sie ein Passwort. Nach der folgenden Konfiguration müssen Sie das Passwort nur beim ersten Mal eingeben und es wird dauerhaft auf dem Server gespeichert. Beim nächsten Kopieren/Pullen eines Git-Files müssen Sie das Passwort nicht mehr eingeben:
Wenn Sie Ihr Konto und Ihr Passwort löschen möchten, geben Sie Folgendes ein:
Wenn Sie eine temporäre Speicherung wünschen (Standard 15 Minuten), geben Sie Folgendes ein:
Um ein Projekt von der Kennwortpflicht zu befreien, fügen Sie dem https-Link
Die obigen Konfigurationen werden in 2. Jenkins-Installation/Konfiguration/Hot Deployment/Skript-Tomcat-Neustart Laden Sie das Installationspaket jenkins.war herunter; führen Sie im Stammpfad des Installationspakets den Befehl Öffnen Sie den Browser, rufen Sie den Link http://ip:8080 auf und geben Sie die Auswahl für die Plug-In-Installation ein. Es wird empfohlen, die empfohlenen Plug-Ins auszuwählen, um sicherzustellen, dass die grundlegenden, häufig verwendeten Funktionen verwendet werden können. Rufen Sie nach der Auswahl die Plug-In-Installationsseite auf. Wenn die Installation einiger Plug-Ins fehlschlägt, können Sie auf „Neu installieren“ klicken: Legen Sie den anfänglichen Benutzer und das Kennwort für die nächste Anmeldung fest: Melden Sie sich beim System an und die Installation ist abgeschlossen: Hinweis: Wenn Sie das System immer noch nicht aufrufen können, müssen Sie eine Weile warten oder die Seite aktualisieren. Wenn Sie immer noch nicht aufrufen können, müssen Sie den Jenkins-Server neu starten. Fügen Sie einfach „restart“ nach der URL der Startseite hinzu [Restart: In der Datei $JENKINS_HOME/hudson.model.UpdateCenter.xml lautet der Standardinhalt wie folgt: <?xml version='1.0' encoding='UTF-8'?> <Websites> <Seite> <id>Standard</id> <url>http://updates.jenkins-ci.org/update-center.json</url> </Seite> </Seiten> Diese Adresse befindet sich auf einem fremden Server. Aufgrund der Firewall kann das für die Initialisierungsschnittstelle erforderliche Plug-In nicht heruntergeladen werden, sodass es sich im Wartezustand befindet. Durch Ändern der URL in Legen Sie die Installationsquelle des Plugins fest: Plugin-Verwaltung -> Erweitert, http://mirror.xmission.com/jenkins/updates/current/update-center.json Führen Sie eine globale Toolkonfiguration für die Systemverwaltung durch, einschließlich Maven-, JDK- und Git-Konfiguration: Erstellen Sie nach der Konfiguration das Projekt und wählen Sie „Neue Aufgabe“: Bevor Sie die Projektinformationen konfigurieren, benötigen Sie einige Anmeldeinformationen, z. B. den Benutzernamen und das Kennwort von Git sowie den Benutzernamen und das Kennwort des Tomcat-Benutzers: Systemverwaltung -> Anmeldeinformationen verwalten Der Tomcat-Benutzername und das Passwort sind erforderlich, damit Jenkins Tomcat remote veröffentlichen kann. Sie werden in tomcat-users.xml unter der Tomcat-Konfiguration konfiguriert: Für die Remote-Veröffentlichung von Tomcat müssen tomcat-users.xml, context.xml (die Falle, die in der folgenden Konstruktion auftritt, Punkt 5) und manager.xml (die Falle, die in der folgenden Konstruktion auftritt, Punkt 6) geändert werden. <tomcat-users xmlns="http://tomcat.apache.org/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd" version="1.0"> <Rolle Rollenname="manager-gui"/> <Rolle Rollenname="Manager-Skript"/> <Rolle Rollenname="manager-jmx"/> <Rolle Rollenname="Manager-Status"/> <Rolle Rollenname="admin-gui"/> <user username="Benutzername" password="Passwort" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui"/> </tomcat-Benutzer> Konfigurieren Sie die Projektinformationen und erstellen Sie sie nach der Konfiguration. Tomcat muss auf dem Server gestartet werden: Oben ist die Hot-Bereitstellung von Tomcat. Das Folgende ist das Projekt zur Neustartausführung von Tomcat: Installieren Sie zuerst das Plug-In Publish Over SSH und konfigurieren Sie die Informationen: Systemverwaltung -> Informationskonfiguration -> Publish over SSH Bevor Sie die Konfiguration erstellen, müssen Sie ein Skript zum Neustarten von Tomcat erstellen: vi tomcat.sh und dann die Ausführungsberechtigung chmod 777 tomcat.sh erteilen
Build: Wählen Sie in den Post-Schritten Dateien senden oder Befehle über SSH ausführen. Der folgende Post-Build-Vorgang -> War/Ear in einem Container bereitstellen ist nicht mehr erforderlich: 3. Fallstricke beim Bau Wenn Sie kein Maven-Projekt erstellt haben, installieren Sie es, indem Sie nach dem Plugin suchen: Maven Integration Plugin Wenn nach dem Erstellen kein Deploy war/ear in einem Container vorhanden ist, suchen Sie im Plugin und installieren Sie es: Deploy to container Plugin Der folgende Fehler tritt auf:
Lösung: Fügen Sie dem <build>-Tag in pom.xml <defaultGoal>install</defaultGoal> hinzu Der folgende Fehler tritt auf: org.codehaus.cargo.container.ContainerException: Fehler beim Bereitstellen oder org.codehaus.cargo.container.ContainerException: Die Eigenschaften [cargo.remote.username] und [cargo.remote.password] sind obligatorisch und müssen in Ihrer Konfiguration definiert werden Lösung: Fügen Sie <plugins> im <build>-Tag von pom.xml hinzu <Plugin> <groupId>org.codehaus.cargo</groupId> <artifactId>cargo-maven2-plugin</artifactId> <version>1.4.9</version> <Konfiguration> <Behälter> <!-- Name der Containerversion --> <containerId>Tomcat 9.x</containerId> <Typ>Fernbedienung</Typ> </container> <Konfiguration> <Typ>Laufzeit</Typ> <Eigenschaften> <!-- Tomcat-Verwaltungsschnittstelle --> <cargo.remote.uri>http://ip:8888/manager/text</cargo.remote.uri> <!-- Benutzername und Passwort der Tomcat-Verwaltungsschnittstelle --> <cargo.remote.username>Benutzername</cargo.remote.username> <cargo.remote.password>Passwort</cargo.remote.password> </Eigenschaften> </Konfiguration> </Konfiguration> </plugin> Das folgende Problem tritt auf: Verursacht durch: org.codehaus.cargo.container.tomcat.internal.TomcatManagerException: Der von Ihnen angegebene Benutzername ist nicht berechtigt, den textbasierten Tomcat Manager zu verwenden <Kontext antiResourceLocking="falsch" privilegiert="wahr" > <!-- <Valve-Klassenname="org.apache.catalina.valves.RemoteAddrValve" erlauben="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:0:1" /> --> //Auskommentieren <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/> </Kontext> Bei der Tomcat-Remoteverbindung wird eine 403-Ablehnung angezeigt. Fügen Sie manager.xml unter conf/Catalina/localhost hinzu. <?xml version="1.0" encoding="UTF-8"?> <Kontext privilegiert="wahr" antiResourceLocking="falsch" docBase="${catalina.home}/webapps/manager"> <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" /> </Kontext> Idea wird mit dem Jenkins-Plug-In für Remote-Publishing kombiniert. Wenn Crumb-Daten über http://ip:8080/crumbIssuer/api/xml?tree=crumb# abgerufen und ausgefüllt werden, CSRF aktiviert -> Fehlende oder fehlerhafte Crumb-Daten werden angezeigt Wenn man online nach Lösungen sucht, wird in den meisten Fällen empfohlen, den CSRF-Dienst zu aktivieren. Das Problem lässt sich jedoch immer noch nicht lösen. Die Lösung lautet: Klicken Sie auf Benutzername -> Einstellungen -> API-Token -> Aktuelles Token, generieren Sie ein Token anhand des Tokennamens, ersetzen Sie den Benutzernamen und das Passwort oben und es ist schließlich erfolgreich Dies ist das Ende dieses Artikels über Hot Deployment/Neustart der automatischen Freigabe von Jenkins+Tomcat und Lösungen für aufgetretene Probleme (empfohlen). Weitere relevante Inhalte zum Hot Deployment von Jenkins Tomcat finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: So verwenden Sie MySQL-Stresstest-Tools
>>: Verständnis und Anwendungsszenarien von ES6-Erweiterungsoperatoren
Ich habe mich kürzlich mit Linux beschäftigt und ...
1. Wenn der Benutzer über die Berechtigung zum Er...
Inhaltsverzeichnis 1. So erhalten Sie Elemente Ho...
Inhaltsverzeichnis Projekteinführung: Projektverz...
Inhaltsverzeichnis 1. Inhaltsverzeichnis 1.1 Konz...
In diesem Artikel finden Sie das Download-, Insta...
Inhaltsverzeichnis 1. Art von 2. Instanz von 3. U...
JBoss verwendet Tomcat als Webcontainer. Die Konf...
Inhaltsverzeichnis Benutzerdefinierte Vite-Plugin...
Um das Parsen der Website zu beschleunigen, könne...
Inhaltsverzeichnis Vorwort Wie wechselt man zwisc...
1. Was ist Semantisierung? Erklärung zum Bing-Wör...
MySQL-Installationstutorial für Windows-Systeme h...
Das Umschreibmodul ist das Modul ngx_http_rewrite...
Vorwort: Bei Vorstellungsgesprächen für verschied...