[英]How to launch Windows Slave from Linux Master in 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.