Jenkins Slave 403虽然已启用匿名从属连接

use*_*247 7 security slave jenkins

我们正在使用Jenkins Master和Slave(两种Linux)类型设置.最近升级到LTS版本,由于某种原因Slaves仅在Anonymous被授予Admin权限时连接到Master.

我已经阅读了有关提供匿名从属连接权限的帖子,但是当我尝试这个时,我收到403请求的禁止错误.

唯一的方法是提供匿名管理员权限(这是有风险的)保存它然后返回管理Jenkins>配置安全性>删除匿名管理>添加从属连接权限.执行此解决方法的问题是,当从属服务器重新启动时,我得到相同的403错误,直到我给出匿名管理员权限.

我试过放下一个没有帮助的新slave.jar.

我们正在使用LDAP绑定帐户,是否可以轻松修复此403问题而无需再次输入绑定密码(我们最近在Jenkins升级后执行此操作)

Dam*_*mon 2

1.5 年后没有什么答案,但我刚刚遇到了这个!

我处理这个问题的方法是使用基于角色的策略插件

概括

基础知识是:

  1. 添加并启用基于角色的策略插件
  2. 创建全局组 swarmclient
  3. 仅授予 swarmclient 组从属权限
  4. 我目前允许 Anonymous 组加入 swarmclient 组。
    • 将来我可能会拒绝 Anonymous 组的 swarmclient 权限,而是在 swarmclient 组中创建帐户。

细节

在 中Manage Jenkins > Configure Global Security > Authorization,启用基于角色的策略。

启用基于角色的策略

Manage Jenkins > Manage Roles > Manage and Define Roles我将“swarmclient”添加到全局角色中。Create在全局设置的从属部分中授予该组权限:

swarmclient全局组权限

在 Jenkins 的新版本中,术语“从属”被“代理”取代

然后Manage Jenkins > Manage Roles > Assign Roles将 Anonymous 组添加到 swarmclient 组中:

将 Anonymous 分配给 swarmclient 组

最后,如上所述,如果您想对可以作为 swarm 客户端连接的计算机进行一些限制,只需:

  1. 为集群创建用户
  2. 将它们添加到 swarmclient 组
  3. 从匿名组中删除 swarmclient 权限(在分配角色上)页面。

  • 给我的备忘录和给其他人的提示:可以使用curl https://jenkins.tld/plugin/swarm/slaveInfo -o - --trace /tmp/debug.txt来模拟swarm的“-master jenkins.url”选项和获取一些无法从 Swarm 客户端获得的附加信息。Alpine 3.3 wget 是一个扁平化的 BusyBox 版本,因此,应该安装例如curl :) (2认同)