Jenkins中AWS AMI代理标签未识别问题求助
确认标签配置的正确位置
别把标签加到AWS EC2实例的原生标签里,要在Jenkins的EC2云模板配置里设置:进入「管理Jenkins」→「管理节点和云」→「配置云」,找到对应的EC2模板,在「Labels」栏填入agent,保存后重新触发任务。Jenkins EC2插件只认模板里配置的标签,和AWS实例自带标签无关。检查EC2模板的启动限制
确认模板的「Number of executors」设为≥1,「Instance Cap」不是0——如果实例上限设为0,Jenkins根本不会启动新代理。另外「Remote root directory」要填实例上存在且有读写权限的路径,比如/home/ec2-user,否则实例启动后也无法正常注册为Jenkins节点。查看Jenkins系统日志排查实例状态
进入「管理Jenkins」→「系统日志」,搜索EC2关键词,看是否有实例启动失败的报错:比如IAM权限不够拉取实例、安全组没开Jenkins代理的端口(默认22)、AMI里没装Java或Jenkins代理程序。如果实例压根没启动,自然不会有带agent标签的节点。验证Jenkinsfile代理语法
确保语法没有问题,也可以尝试指定云名称来缩小匹配范围:agent { cloud '你的EC2云配置名称' label 'agent' }或者用node块明确指定标签:
agent { node { label 'agent' } }手动触发代理实例测试
在EC2云配置页面点击「Provision slave」按钮,手动启动一个代理。之后去「管理节点」页面看是否出现新节点,且标签是否为agent。如果手动启动后节点出现但标签不对,重新核对模板的标签配置;如果启动失败,重点排查AMI的环境问题(比如是否预装了Jenkins代理、Java版本是否符合Jenkins要求)。检查标签的一致性
模板里的标签和Jenkinsfile里的标签要完全一致,Jenkins标签区分大小写,别出现模板里是Agent、Jenkinsfile里是agent的情况,也别带多余空格或特殊字符。
内容的提问来源于stack exchange,提问作者Taylor Steinbaugh - MACE

