ansible: ec2_asg 模块创建额外的实例
ansible: ec2_asg module creates extra instance
我正在使用以下任务创建一个 aws
自动缩放组。
- name: Create auto scaling group
ec2_asg:
name: "{{ els_aws_asg_name }}"
launch_config_name: "{{ rv_ec2_lc.result.launch_configuration_name }}"
region: "{{ VPC_REGION }}"
min_size: 1
max_size: 5
desired_capacity: 1
vpc_zone_identifier: "{{ els_aws_private_vpc_subnets[0] }}"
load_balancers: "{{ rv_ec2_elb.elb.name }}"
notification_topic: "{{ els_aws_sns_admin }}"
replace_all_instances: yes
tags:
- Name: "{{ els_aws_asg_name }}"
然而,虽然 desired_capacity
设置为 1,完成后我看到 2 运行 ec2
实例。
在运行任务之前,还有1个实例(所以具体任务其实是加一个)。
为什么会这样?
更新:
进一步调查发现,在 aws
控制台中检查时,一个实例似乎附加在特定的 Auto Scaling 组中。所以上面的行为是有道理的。
当我终止似乎附加到 asg 的实例时,asg 会启动一个新实例。
当我终止 other 实例时,asg 不采取任何行动。
现在的问题是如何在 asg 中附加一个 现有的 实例,因为 ec2_asg 似乎没有提供这样的功能。
Ansible 无法将现有实例附加到 ASG。唯一的方法是使用 AWS 控制台或 CLI,这还不错,因为您只会这样做一次。
我正在使用以下任务创建一个 aws
自动缩放组。
- name: Create auto scaling group
ec2_asg:
name: "{{ els_aws_asg_name }}"
launch_config_name: "{{ rv_ec2_lc.result.launch_configuration_name }}"
region: "{{ VPC_REGION }}"
min_size: 1
max_size: 5
desired_capacity: 1
vpc_zone_identifier: "{{ els_aws_private_vpc_subnets[0] }}"
load_balancers: "{{ rv_ec2_elb.elb.name }}"
notification_topic: "{{ els_aws_sns_admin }}"
replace_all_instances: yes
tags:
- Name: "{{ els_aws_asg_name }}"
然而,虽然 desired_capacity
设置为 1,完成后我看到 2 运行 ec2
实例。
在运行任务之前,还有1个实例(所以具体任务其实是加一个)。
为什么会这样?
更新:
进一步调查发现,在 aws
控制台中检查时,一个实例似乎附加在特定的 Auto Scaling 组中。所以上面的行为是有道理的。
当我终止似乎附加到 asg 的实例时,asg 会启动一个新实例。
当我终止 other 实例时,asg 不采取任何行动。
现在的问题是如何在 asg 中附加一个 现有的 实例,因为 ec2_asg 似乎没有提供这样的功能。
Ansible 无法将现有实例附加到 ASG。唯一的方法是使用 AWS 控制台或 CLI,这还不错,因为您只会这样做一次。