groovy Jenkins:如何使用自动化将数据添加/更新到rb-matrix

uyto3xhc  于 2023-08-02  发布在  Jenkins
关注(0)|答案(2)|浏览(161)

在我的组织中,我是一名Jenkins管理员,我管理来自LDAP服务器的用户(LDAP服务器在Jenkins中正确配置)。我们已经设置了一个自动添加或更新LDAP记录时,需要的,我们可以填写我们的jenkins LDAP组和子组。我们已经配置了Matrix Authorization Strategy Plugin来直接在Jenkins上管理用户,但是目前我们只能手动将用户添加到这个矩阵中。我试图寻找是否有一种WA来更新容器上的configurations.xml文件,但我认为不可能完成此操作。现在,有没有一些基于plugin/groovy/py/其他linux的解决方案可以帮助我们不手动地填充manage-role-matrix和assign-role-matrix,而是使用某种脚本或自动化?无论如何,感谢所有人!

xpcnnkqh

xpcnnkqh1#

我使用组织文件夹管道,它允许我为所有项目存储库设置每个项目的访问权限,包括新的存储库。这是开箱即用的解决方案
对于您的目标,您需要挖掘Job类以设置访问权限。您可以从here开始

kq4fsx7k

kq4fsx7k2#

谢谢你,山姆.你的链接是非常有趣!无论如何,我找到了一个更具可扩展性的解决方案,我实现了我的目标,只使用2个非常简单的卷发,就像这样:

curl -vk -s --user "<user>:<psw>" \
-F "type=globalRoles" \
-F "roleName=${roleName}" \
-F "permissionIds=${permissionIds}" \
-F 'overwrite=true' \
"${JENKINS_URL}/role-strategy/strategy/addRole"

字符串
使用此curl,您可以通过roleName将新角色添加到第一个(全局角色)矩阵中。如果你想将这个角色添加到第二个矩阵中,你必须将type=globalRoles修改为type=projectRoles,就这样。关于assign role,curl非常相似,它是:

curl -vk -s --user "<user>:<psw>" \
-F "type=globalRoles" \
-F "roleName=${roleName}" \
-F "sid=${uid}" \
-F "assignedSIDs=${uid}" \
"${JENKINS_URL}/role-strategy/strategy/assignRole"


使用第二个curl,您可以通过assignedSID =uid将新用户添加到第一个和第二个矩阵中(始终使用globalRoles和projectRoles)。
现在我需要以同样的方式添加一个云pod模板...我相信有类似的解决方案!
希望这个解决方案可以帮助到其他人!Thanks:)

相关问题