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

问题描述 投票:0回答:1

我正在尝试使用 Jenkins 中的 Active Choices Reference Parameter 插件来生成用户可以选择作为参数的 AWS Lambda 函数列表。提供的 Groovy 脚本引用用户最初选择的 AWS 账户的名称,运行“aws sts Should-role”命令以交换到给定账户,然后从那里返回经过筛选的 lambda 函数名称列表。

我的组织不允许 jenkins-leader IAM 角色将角色承担到另一个账户中。只有 jenkins-follower IAM 角色有权执行此操作。因此,我需要限制我的项目仅在一组特定的节点上运行。我在 Freestyle 作业配置设置中使用“限制此项目可以运行的位置”选项来实现此目的(并给出适当的标签)。但是,当我运行“aws sts get-caller-identity”命令时,它显示当前 IAM 角色设置为 jenkins-leader,并且我无法运行“assume-role”。

有人能够确认为什么 Active Choices Reference Parameter 插件无法识别我提供的受限标签吗?我似乎无法在文档或在线其他地方找到明确的答案。

我尝试使用“限制此项目可以运行的位置”选项来强制 Jenkins 作业在具有我正在寻找的正确 IAM 角色权限的特定 jenkins-follower 节点上执行。

我期望“aws sts get-caller-identity”命令返回与我在自由式作业设置中定义的受限节点匹配的调用者身份信息。相反,它返回 jenkins-leader 节点的身份信息。

我已经在关注者节点的脚本控制台上测试了我的 groovy 脚本,它返回了我期望的信息。然而,在领导节点的脚本控制台上使用相同的脚本会给我一个权限错误(这也是我所期望的)。

amazon-web-services jenkins groovy jenkins-plugins jenkins-groovy
1个回答
0
投票

Active Choices 插件会在控制器上执行其 groovy 脚本,无论作业本身在何处执行。例如,groovy 脚本可以使用

ssh
在代理上执行命令。

© www.soinside.com 2019 - 2024. All rights reserved.