Jenkins: Wie man den Knoten Namen von label zu verwenden, als parameter
Muss ich zu geben, einen server-Namen in einen maven-build. Während des maven-build-diese server-name wird verwendet, um einen Anruf zu tätigen, die server tun einige tests auf dem server.
Unsere Server jenkins-slaves auf und gruppiert die Verwendung von Etiketten
Beispiel
Slaves/Node | Label
Server1 | BackEndServers
Server2 | BackEndServers
Server3 | FrontEndServers
Server4 | FrontEndServers
Mit Elastischen Achse plugin kann ich sagen, dass run my Jenkins-job auf diesem Knoten-Label (z.B. auf BackEndServers) und das gleiche Projekt ausgeführt werden auf beide Server (Server1 & Server2).
In meinem Fall habe ich dies nicht als maven ist nicht installiert, auf der BackEndServers, wo mein code ausgeführt wird. Aber der maven-build-wissen muss über den server-Namen wenn.
Gibt es also einen Weg, wie kann ich die server-Namen aus einem label und führen Sie dann den gleichen job mehrmals passsing jeder servername, um den maven-build?
Beispiel
-
Geben, dass ich das label "BackEndServers'
-
erhalten Sie eine Liste von node-Namen "Server1", "Server2"'
- und führen Sie meine Arbeit für jeden Knoten Namen und übergeben Sie einen parameter, um es
- aka
-
- Mit Job (mit parameter Server1)
-
- Mit Job (mit dem parameter "Server2")
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Jenkins Umgebungsvariablen wie NODE_NAME in der Maven-Befehl in der build-job-als Wert für die ein-system-Eigenschaft. Zum Beispiel:
In Ihrem Maven-Projekt (pom.xml) das plugin konfigurieren, erfordert die Knotennamen mit Hilfe der folgenden Eigenschaft: ${jenkins.Knoten.name}
Hier sind einige links - wie trigger-Jenkins-builds aus der Ferne:
Ich weiß nicht, ob es möglich ist, in der Weise, die Sie es wollen. Aber die bereitgestellten Informationen sollen Ihnen helfen eine Lösung zu finden.
Versuchen
Jenkins.getInstance().getComputer(env.NODE_NAME).getNode()
Sehen Sie mehr auf offizielle DocAm Ende habe ich noch eine 2 jobs.
Im Job 1 - ich habe Die EnjEnv plugin und es hat einen 'Evaludated Groovy' - Abschnitt, der im Grunde können Sie nichts tun... aber sollte es wieder eine übersichtskarte. Ich weiß nicht, wie die Rückgabe eines Wertes von einem Groovy-Skript, damit dies funktioniert kewl für mich, wie ich kann die Referenz-Eigenschaft (oder Environment-Variablen) aus fast anyware
Dann hatte ich einige Problem zu passieren, die Umwelt var auf meinen nächsten job. Also ich schrieb nur die Werte, die ich wollte, um eine property-Datei mit einem windows-batc Skript in den Build-Prozess
Dann als post-build-Aktion hatte ich noch einen "Trigger parametriert auf andere Projekte', ruft mein 2. job und ich ging die baseEnvMap.Eigenschaften, um es.
Dann auf meinen Job 2 was ist ein Multiconfig job ich habe eine Dynamische Achse, mit der Umwelt var übergeben wurde, die über die property-Datei zu Aufgabe 2.
Wird diese doppelte Aufgabe 2, und führen Sie es jedes mal mit dem Wert, der der groovy-Skript build-up, das ich den Verweis in meinem mvn Argumente.
Liste aus allen Knoten label-Namen LABELNAME:
http://ServerIP:8080/label/LABELNAME/api/json?pretty=true