我正在使用Ansible在AWS中创建VPC。接下来的播放
- name: create vpc with multi-az subnets
ec2_vpc:
region: "{{ region }}"
cidr_block: "{{ vpc_cidr_block }}"
resource_tags: '{"Name":"{{ prefix }}_vpc"}'
subnets:
- cidr: "{{ vpc_cidr_subnet_public_0 }}"
az: "{{ region }}{{ availability_zone_0 }}"
resource_tags: '{"Name":"{{ prefix }}_subnet_public_0", "Class":"web", "Partner":prefix }'
- cidr: "{{ vpc_cidr_subnet_private_0 }}"
az: "{{ region }}{{ availability_zone_0 }}"
resource_tags: '{"Name":"{{ prefix }}_subnet_private_0", "Class":"db", "Partner":prefix }'
- cidr: "{{ vpc_cidr_subnet_private_1 }}"
az: "{{ region }}{{ availability_zone_1 }}"
resource_tags: '{"Name":"{{ prefix }}_subnet_private_1", "Class":"db", "Partner":prefix }'
internet_gateway: yes
route_tables:
- subnets:
- "{{ vpc_cidr_subnet_public_0 }}"
routes:
- dest: 0.0.0.0/0
gw: igw
wait: yes
register: vpc
第一次解决这个问题就可以完美地创建所有内容。第二次,我希望它不会做任何事情,因为已经创建了所有内容,但是,公共(public)子网已更新为私有(private)子网。
为什么?我究竟做错了什么?
[更新]
以下是变量:
---
region: eu-west-1
prefix: staging
vpc_environment: staging
vpc_cidr_block: 20.0.0.0/16
vpc_cidr_subnet_public_0: 20.0.0.0/24
vpc_cidr_subnet_private_0: 20.0.1.0/24
vpc_cidr_subnet_private_1: 20.0.2.0/24
availability_zone_0: b
availability_zone_1: c
也只是为了澄清正在发生的变化。一个子网(公共(public))的所有资源标签都被另一子网(私有(private))的标签覆盖。
最佳答案
这是由master-ec2_vpc
中ansible-modules-core中的错误引起的。我已经记录了bug并创建了PR来解决此问题。有关详细信息和实际中断,请参见PR。希望它能尽快合并!
[更新] 合并
关于amazon-web-services - 无法弄清楚为什么要更新子网,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35125292/