Jenkins代理安全性

时间:2018-11-03 13:29:18

标签: jenkins jenkins-slave

我有两个要解决的问题。

问题1

我已经设置了Jenkins Master,并且正在尝试使用UI创建代理。这是用户界面代码段。 enter image description here

现在,当我单击“保存”并打开代理时,它会告诉我使用此命令进行连接。

java -jar agent.jar -jnlpUrl https://<MASTER_NODE>/computer/Test_node/slave-agent.jnlp

我没有选择使用-secret的选择。如何启用该功能,以便还需要提供密码以连接到主服务器。

问题2

我正在自动创建多个Jenkins代理。我将使用REST API调用来做到这一点。该命令是

curl -s -k -w %{http_code} -X POST "https://<MASTER_NODE>/computer/doCreateItem?name=jenkins-slave-1&type=hudson.slaves.DumbSlave" \
                        -H "Content-Type: application/x-www-form-urlencoded" \
                        -H "Jenkins-Crumb: ${JENKINS_CRUMB}" \
                        -d "json=${JNLP_JSON}" )

现在,对于每个代理而言,jnlp文件中的秘密值都不同。有没有一种方法可以在Jenkins Master中指定该值,以便每个Jenkins代理都具有相同的密码?

3 个答案:

答案 0 :(得分:0)

如果您是jenkins管理员,请选中

1)管理詹金斯->配置全局安全性->访问控制->授权

在基于项目的矩阵授权策略下,确保您未选中“匿名代理”角色下的“连接”选项。

(或)

2)确保管理詹金斯->配置全局安全性->代理->代理协议仅启用了V4 JNLP V4 TLS based encryption

关于第二个问题,我不知道。面临着如何将奴隶自动连接到具有不同秘密的詹金斯大师的同一问题

答案 1 :(得分:0)

JNLP 机密源自代理的名称。您可以从 jnlp 文件或通过在 master 上执行的 groovy 获取特定代理的 JnlpMac 或机密。参见例如 How to find JNLP Node's secret key remotely?

答案 2 :(得分:0)

您可以在包含 jre 参数的 Remote root directory 中添加 jenkins-slave.exe 和 jenkins-slave.xml 这需要一个密钥。仅当您将代理设置为 Windows 服务时才需要密钥。

我已按照 LINK 中的说明进行操作