无法使用ansible删除AWS的专有网络
已创建具有子网的vpc。已删除该子网中的实例。因此,子网和vpc不再包含任何实例(依赖项) 此外,可以从控制台中删除专有网络。但当尝试通过ec2_vpc模块时,会出现错误,说明“此vpc下存在依赖项,因此无法删除”。但它可以从控制台中看到已删除 所以认为这个vpc下的子网可能是依赖关系。ansible文档为子网提供了模块,但在使用时,它给出了不存在的模块,并声明“非法参数” 显示路由表的图像,该路由表不能通过olle提供的代码段删除无法使用ansible删除AWS的专有网络,ansible,ansible-playbook,aws-sdk,aws-opsworks,Ansible,Ansible Playbook,Aws Sdk,Aws Opsworks,已创建具有子网的vpc。已删除该子网中的实例。因此,子网和vpc不再包含任何实例(依赖项) 此外,可以从控制台中删除专有网络。但当尝试通过ec2_vpc模块时,会出现错误,说明“此vpc下存在依赖项,因此无法删除”。但它可以从控制台中看到已删除 所以认为这个vpc下的子网可能是依赖关系。ansible文档为子网提供了模块,但在使用时,它给出了不存在的模块,并声明“非法参数” 显示路由表的图像,该路由表不能通过olle提供的代码段删除 [IMG]我正在使用此代码创建一个具有ansible的VPC
[IMG]我正在使用此代码创建一个具有ansible的VPC
- name: create a VPC
local_action:
module: ec2_vpc
state: present
cidr_block: 10.0.0.0/16
resource_tags: "{}"
subnets:
- cidr: 10.0.0.0/16
internet_gateway: True
route_tables:
- subnets:
- 10.0.0.0/16
routes:
- dest: 0.0.0.0/0
gw: igw
region: '{{ region }}'
wait: yes
register: vpc
并使用以下两个命令将其删除
第一个命令删除子网、IGW和路由表
- name: remove subnets and route tables from VPC
local_action:
module: ec2_vpc
vpc_id: "{{ vpc.vpc_id }}"
region: "{{ region }}"
state: present
resource_tags: "{}"
subnets: []
internet_gateway: False
route_tables: []
wait: yes
然后我可以删除实际的专有网络
- name: delete VPC
local_action:
module: ec2_vpc
vpc_id: "{{ vpc.vpc_id }}"
region: "{{ region }}"
state: absent
resource_tags: "{}"
wait: yes
希望这对您有所帮助。Ansible已经为vpc提供了ec2_vpc_net模块,您可以创建或删除vpc。 例:
希望这对您有所帮助您能否编辑您的问题,以显示在呼叫您的play以删除VPC时出现的错误?还有删除子网ID时出现的错误,你知道吗?两年后我看到了同样的事情。@darkwing我认为罪魁祸首是一些子网或路由表,在删除VPC之前,您必须先删除它们。虽然现在不确定,但我没有使用ansible。谢谢,我的问题基本上是,我在开发过程中创建了附加到VPC的额外组件,这些组件不再被我的“destroy AWS”Playbook覆盖(例如名称已更改)。这非常适合删除internet网关和子网。它也会删除路由表,但不会删除与此vpc关联的主路由表。因此,由于一个路由表,仍然会出现依赖项错误。我将编辑我的问题,添加显示需要删除的路由表的图像,以避免此错误。此外,我使用set_facts,其范围是主机级别。所以,当我在其他主机中使用它时,应该与jinja 2模板一起使用。如果在同一个剧本中检索到set_事实,那么它是有效的,但是当我在不同的剧本中使用时,它不会被持久化。是实施错误,还是我应该使用redis进行事实缓存以在Playbook中持久化。现在,与子网关联的所有子网、Internet网关、路由表都已删除,但无法删除主路由表。因此,在删除vpc本身时,这仍然会产生依赖性sir
- name: DELETE THE VPC
ec2_vpc_net:
name: vpc_name
cidr_block: "{{ build_env.vpc_net_cidr }}".
region: "{{ build_env.region }}"
profile: "{{ build_env.profile }}"
state: absent
purge_cidrs: yes
register: vpc_delete