您好我需要编写一个Ansible代码来启动EC2实例并以循环方式将其分配给可用子网。手动创建的VPC只有1个,但根据启动的基础设施,子网的数量会有所不同。 我的hosts文件看起来像这样使用Ansible启动EC2实例并动态分配子网
[ABC-database]
ABCDB01
[ABC-application]
ABCFE0[1:2]
ABCBE0[1:2]
[cassandra]
CASS0[1:3]
我也写代码来创建子网文件
subnet1: subnet-7284c12b
subnet2: subnet-fd363e98
subnet3: subnet-c892bfbf
我所要做的就是在同一时间拿起一个实例,拿起每个实例all.yml中的配置,并以循环(循环)方式将其分配给每个子网。
目前我写了一个shell脚本来做到这一点。该脚本会计算子网文件中子网的数量,并在每次调用时返回一个新的子网ID。
我被困在这之后。 如何在启动ec2实例时调用此脚本?下面的代码抛出一个错误“next_subnet”未定义
- name: Launch instances.
local_action:
command: ./get_next_available_subnet.sh
register: next_subnet
module: ec2
region: "{{ region }}"
keypair: "{{ keypair }}"
instance_type: "{{item.instance_type}}"
image: "{{image_id}}"
vpc_subnet_id: "{{ next_subnet.stdout }}"
count: 1
wait: yes
with_items: "{{component_list}}"
有一个不太混乱的方式来实现这一目标?
非常感谢:) – mp123