Jenkins Active Choices参数脚本在受限节点无法运行问题咨询
问题原因及解决方案
核心原因
Active Choices Reference Parameter插件的Groovy参数脚本默认在Jenkins主节点(leader)执行,和任务配置里的"Restrict where this project can run"是两个独立阶段:
- 参数渲染是任务启动前的预处理步骤,此时还没触发任务的节点分配逻辑
- 任务的节点限制只作用于任务执行阶段的构建步骤,不影响参数生成阶段的脚本运行
解决步骤
修改Active Choices参数的执行节点配置
打开你的Freestyle任务参数配置,找到Active Choices Reference Parameter的设置项:- 找到
Run on node(部分版本显示为Execute script on agent)选项 - 选择
Label,填入你用来标识jenkins-follower节点的标签 - 保存配置后,参数脚本会强制在符合标签的follower节点上执行,使用该节点的jenkins-follower IAM角色
- 找到
验证执行环境
在Groovy脚本中添加以下代码确认运行节点和身份:// 打印当前运行节点名称 println "Current node: ${env.NODE_NAME}" // 打印当前IAM身份 def callerIdentity = "aws sts get-caller-identity".execute().text println "IAM Identity: ${callerIdentity}"触发参数渲染时,检查输出确认是否使用了follower节点的身份
额外检查项
- 确保jenkins-follower节点已安装AWS CLI,且节点的IAM角色确实拥有跨账户assume-role权限
- 如果找不到
Run on node选项,升级Active Choices插件到2.5及以上版本 - 确认jenkins-follower节点在线,且Jenkins主节点能正常调度该节点
内容的提问来源于stack exchange,提问作者cvlcde
相关产品推荐
相关产品推荐

