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

运行指定Ansible命令后,Auto Scaling Group内EC2未关联Target Group问题

问题场景

执行下方Ansible Playbook创建Auto Scaling Group(ASG)后,控制台显示ASG的Target Group配置无误,但所有EC2实例都未被分配到对应Target Group。只有手动在控制台解绑并重新关联Target Group后,新启动的EC2实例才会正常加入该组。

原Playbook代码:

- name: Create Auto Scaling Group 
  amazon.aws.autoscaling_group:
    name: "asg"
    launch_template:
      launch_template_name: "launch-template"
    health_check_period: 60
    health_check_type: ELB
    replace_all_instances: true
    min_size: 1
    max_size: 3
    desired_capacity: 2
    region: us-east-1
    replace_all_instances: true
    target_group_arns: "{{ target_group.target_group_arn }}"
    vpc_zone_identifier: ["{{ private_subnet_info1.subnets[0].subnet_id }}", "{{ private_subnet_info2.subnets[0].subnet_id }}"]
    wait_for_instances: false
    wait_timeout: 1800
问题原因
  1. target_group_arns参数格式错误:该参数要求传入列表类型,但当前代码直接传入了字符串值。Ansible模块处理字符串类型的该参数时,会导致ASG与Target Group的关联逻辑未正确触发实例自动注册流程。
  2. 重复声明参数:代码中两次设置replace_all_instances: true,虽不触发语法错误,但可能造成模块处理逻辑歧义。
修复方案

调整target_group_arns为列表格式,并移除重复的参数声明:

- name: Create Auto Scaling Group 
  amazon.aws.autoscaling_group:
    name: "asg"
    launch_template:
      launch_template_name: "launch-template"
    health_check_period: 60
    health_check_type: ELB
    replace_all_instances: true
    min_size: 1
    max_size: 3
    desired_capacity: 2
    region: us-east-1
    target_group_arns: ["{{ target_group.target_group_arn }}"]
    vpc_zone_identifier: ["{{ private_subnet_info1.subnets[0].subnet_id }}", "{{ private_subnet_info2.subnets[0].subnet_id }}"]
    wait_for_instances: false
    wait_timeout: 1800
验证步骤
  1. 运行修复后的Playbook,重新创建或更新ASG
  2. 检查EC2实例是否自动注册到Target Group
  3. 调整ASG的desired_capacity触发扩容,确认新实例正常加入Target Group

内容的提问来源于stack exchange,提问作者Andrew Burger

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 20:24:57