【发布时间】:2016-10-14 17:32:04
【问题描述】:
我需要构建角色,根据定义的可用区数量自动为 VPC 创建子网。
- name: Setup "{{ aws.vpc.name }}" VPC
ec2_vpc:
state: present
cidr_block: 172.20.0.0/16
resource_tags: { "Name": "{{aws.vpc.name}}" }
subnets:
- cidr: 172.20.1.0/24
az: us-east-1d
resource_tags: { "Name": "{{aws.vpc.name}}-1d" }
- cidr: 172.20.2.0/24
az: us-east-1c
resource_tags: { "Name": "{{aws.vpc.name}}-1c" }
internet_gateway: True
route_tables:
- subnets:
- 172.20.1.0/24
- 172.20.2.0/24
routes:
- dest: 0.0.0.0/0
gw: igw
region: {{ aws.vpc.region }}
如果我只有像这样的AZ名称,如何自动生成这样的块
aws.vpc.az = ['a', 'c', 'e']
- cidr: 172.20.1.0/24
az: us-east-1d
resource_tags: { "Name": "{{aws.vpc.name}}-1d" }
所以,我检查了http://docs.ansible.com/ansible/playbooks_filters.html。但是我没有找到动态生成这个块的方法
【问题讨论】:
-
我对问题感到困惑。您是否打算在字典
aws.vpc中为可用区列表创建一个列表变量az,然后您想动态访问该列表并在该列表上执行此任务?如果这不是你的意思,你能详细说明吗?
标签: amazon-web-services ansible jinja2 ansible-playbook amazon-vpc