我可以通过 Jenkins Web GUI 创建一个新节点,然后让在容器中运行的节点通过名称和 -secret 值连接回 Jenkins master
ex.
docker run jenkinsci/jnlp-slave -url http://jenkins-server:port <secret> <slave name>
有没有办法以编程方式创建 Jenkins 节点并获取秘密和从属名称,这样我就不必通过 GUI 来完成此操作?
以编程方式创建代理
您可以使用create-node
CLI命令创建具有给定配置的新代理。
例如,给定文件中的最小 JNLP 代理配置config.xml
:
<slave>
<remoteFS>/opt/jenkins</remoteFS>
<numExecutors>2</numExecutors>
<launcher class="hudson.slaves.JNLPLauncher" />
</slave>
你可以运行create-node
通过 CLI 客户端或 SSH 界面命令:
cat config.xml | java -jar jenkins-cli.jar -s https://jenkins/ create-node my-agent
查看代理配置
要查看现有代理的 XML 配置,您可以附加config.xml
代理 URL,例如https://jenkins/computer/some-agent-name/config.xml,或者您可以使用get-node
CLI 命令。
以编程方式获取每个代理的秘密
要在不使用 Jenkins Web UI 的情况下获取秘密十六进制值,您可以通过以下方式运行脚本groovy
CLI 命令:
echo 'println jenkins.model.Jenkins.instance.nodesObject.getNode("my-agent")?.computer?.jnlpMac' \
| java -jar ~/Downloads/jenkins-cli.jar -s https://jenkins/ groovy =
这将直接返回秘密值。请注意,为了使用groovy
通过 SSH 界面命令,您需要 Jenkins 2.46 或更高版本。在早期版本中,它只能通过 CLI 客户端运行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)