Jenkins Active Choices参数Groovy脚本无法在受限节点中运行

rbpvctlc  于 7个月前  发布在  Jenkins
关注(0)|答案(1)|浏览(105)

我尝试使用Jenkins中的Active Choices Reference Parameter插件来生成用户可以选择作为参数的AWS Lambda函数列表。提供的Groovy脚本引用用户最初选择的AWS帐户的名称,运行'aws sts assume-role'命令以交换到给定帐户,然后从那里返回经过过滤的lambda函数名称列表。
我的组织不允许jenkins-leader IAM角色将assume-role角色添加到另一个帐户。只有jenkins-follower IAM角色有权执行此操作。正因为如此,我需要限制我的项目只能在一组特定的节点上运行。我在Freestyle作业配置设置中使用了“Restrict where this project can run”选项来实现这一点(使用适当的标签)。然而,当我运行“aws sts get-caller-identity”命令时,它显示当前的IAM角色被设置为jenkins-leader,我不能运行“assume-role”。
有人能确认为什么主动选择参考参数插件不能识别我提供的限制标签吗?我似乎无法在文档或在线其他地方找到明确的答案。
我尝试使用“Restrict where this project can run”选项来强制Jenkins Job在特定的jenkins-follower节点上执行,该节点具有我正在寻找的适当的IAM角色权限。
我期望“awsts get-caller-identity”命令返回与我在Freestyle Job设置中定义的受限节点匹配的调用者身份信息。相反,它返回jenkins-leader节点的身份信息。
我已经在follower节点的Script控制台上测试了我的groovy脚本,它返回了我期望的信息。但是,在引线节点的脚本控制台上使用相同的脚本会导致权限错误(这也是我所期望的)。

dphi5xsq

dphi5xsq1#

Active Choices插件在控制器上执行其groovy脚本,而不管作业本身在哪里执行。例如,groovy脚本可以使用ssh在代理上执行命令。

相关问题