一尘不染

以编程方式创建jenkins JLNP从站

jenkins

我能够通过Jenkins Web GUI创建一个新节点,然后让容器中运行的节点通过名称和-secret值连接回Jenkins主节点

例如 docker run jenkinsci/jnlp-slave -url http://jenkins-server:port <secret> <slave name>

有没有一种方法可以通过编程方式创建Jenkins节点并获取密码和从属名称,因此我不必通过GUI来执行此操作?


阅读 399

收藏
2020-07-25

共1个答案

一尘不染

以编程方式创建代理

您可以使用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-nodeCLI命令。

以编程方式获取每个代理的机密

要在不使用Jenkins Web UI的情况下获取秘密的十六进制值,可以通过groovyCLI命令运行脚本:

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客户端运行。

2020-07-25