You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Jenkins在构建触发时自动创建EC2 slave节点?

解决Jenkins EC2 Slave自动创建的问题

看起来你已经完成了EC2 Jenkins插件的基础配置,但还差关键的一步——让插件自动按需管理slave实例,而不是手动创建永久节点。我来一步步帮你搞定:

一、Cloud Provider的节点模板配置(核心步骤)

你之前只给AMI加了标签,但没配置EC2插件的实例模板,这是自动创建节点的关键:

  1. 回到Manage Jenkins -> Configure System,找到你已经配置好的AWS Cloud Provider区块
  2. 点击「Add」(通常是添加Cloud Instance Template选项),开始配置按需实例的模板:
    • AMI ID:选择你准备好的、带有UI_TESTS标签的AMI
    • Instance Type:选适合回归测试的EC2实例类型(比如t3.medium,根据你的测试资源需求调整)
    • Labels:这里必须填写UI_TESTS(和你作业里限制的标签完全一致,大小写敏感)
    • Instance Launch Details:配置VPC子网、安全组(务必确保Jenkins master能访问实例的SSH端口,默认22)、IAM角色(需要给角色分配EC2创建/销毁的权限,比如AmazonEC2FullAccess或者自定义的最小权限策略)
    • Remote Root Directory:设置slave的工作目录,比如/home/ec2-user/jenkins(对应AMI里的系统用户路径)
    • Launch Method:选择SSH,然后配置对应的SSH凭据(比如EC2 Linux默认用户是ec2-user,Ubuntu是ubuntu,要和AMI里的用户匹配)
    • Idle Termination Minutes:设置实例空闲多久后自动销毁,比如10分钟(避免闲置浪费资源)
    • Number of Executors:根据实例性能设置,比如1(每个实例跑一个测试任务更稳定)
  3. 保存配置,这时候EC2插件就会根据作业需求自动创建带有UI_TESTS标签的slave了

二、作业构建配置的后续调整

  1. 打开你的回归测试作业配置页面
  2. 确认Restrict where this project can be run已经勾选,且标签表达式是UI_TESTS
  3. 彻底删除之前手动创建的UI_TESTS标签节点(避免和自动创建的节点冲突)
  4. 可选优化:
    • 在「Build Triggers」里设置触发条件(比如代码提交后自动触发,或者定时执行)
    • 若需要,在「Post-build Actions」添加测试结果通知,但这不会影响自动创建slave的功能

三、验证自动创建流程

  1. 确保当前没有任何带有UI_TESTS标签的节点
  2. 手动触发一次构建,此时Jenkins会自动执行:
    • 检查是否有可用的UI_TESTS节点 → 没有则调用AWS API创建实例
    • 实例启动后,通过SSH连接并初始化slave环境
    • 测试任务完成后,实例会在空闲超时后自动销毁

常见问题排查

  • 若构建仍提示无标签节点:检查实例模板的Labels是否和作业里的完全一致(大小写、空格都要匹配)
  • 若实例创建失败:检查IAM角色权限、安全组是否开放SSH端口、AMI是否能正常启动
  • 若实例启动后无法连接:确认SSH凭据正确,且AMI里的SSH服务已正常启动

内容的提问来源于stack exchange,提问作者Bohdan Nesteruk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:15:41