簡體   English   中英

如何通過編程方式啟動Jenkins從屬服務器而無需手動登錄到從機

[英]How to launch Jenkins slave programmatically without manual login to Slave machine

我們正在使用Windows R2 2012 64位服務器。 將來,我們將有許多機器運行我們的詹金斯奴隸。 我們要使詹金斯奴隸啟動過程自動化。

我已經通過詹金斯(Jenkins)進行鏈接 ,但是並沒有得到太多幫助。

我也想知道如何將相同的工具集從主機安裝到所有從機。

我確實進行了谷歌搜索,但未找到有關此主題的任何文章。

我添加Windows從站的方法是使用以下腳本:

  • 設置正確的環境變量,例如JAVA_HOME
  • 使用您可以在Jenkins主節點頁面上看到的新密鑰的密鑰啟動正確的java -jar slave.jar
    要將slave.jar從主服務器獲取到從服務器,請從從Windows服務器執行:

     curl -o slave.jar https://your.server/jenkins/jnlpJars/slave.jar 
  • 使用nssm將該腳本聲明為Windows服務

該腳本類似於agent.bat

set PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0
set PATH=D:\Tools\SonarRunner\bin;%PATH%
set M2_HOME=D:\Tools\apache-maven-3.5.0
set PATH=%M2_HOME%\bin;%PATH%
set PATH=D:\Tools\apache-ant-1.9.3\bin;%PATH%
set GH=D:\Tools\Git
set PATH=%GH%\bin;%GH%\usr\bin;%GH%\mingw64\bin;%PATH%
set PATH=%JAVA_HOME%\bin;%PATH%

set WORKSPACE_FOLDER=D:\Jenkins\workspace
set GIT_WORKSPACE_FOLDER=D:\Jenkins\workspace

java -Xmx768m -jar slave.jar -jnlpUrl https://your.server/jenkins/computer/<SlaveName>/slave-agent.jnlp -secret 87ef3d...

然后將該腳本稱為Windows服務,由專用用戶帳戶運行:

runas /user:<domain>\<jenkinsUser> cmd ( enter `jenkinsUser` Windows password )

D:\Tools\nssm-2.24\win64\nssm.exe install <SlaveName> D:\Jenkins\agent.bat

然后配置其Windows服務:

sc config <SlaveName> obj= <domain>\<jenkinsUsers> password= <jenkinsUser password>
sc config <SlaveName> start= auto

有關自動安裝其他軟件的信息,請參見Chocolatey-軟件管理自動化 ,Windows的程序包管理器。


要完全自動化奴隸的聲明方,請使用Web API創建奴隸,並使用一個時髦的腳本來檢索Jenkins節點/奴隸的秘密JnlpMac密鑰
有關創建內容,請參見此腳本
然后使用groovy腳本(使用Jenkins 2.46或更高版本)來獲取密鑰:

echo 'println jenkins.model.Jenkins.instance.nodesObject.getNode("my-agent")?.computer?.jnlpMac' \
  | java -jar ~/Downloads/jenkins-cli.jar -s https://jenkins/ groovy =

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM