无法使用ansible删除AWS的vpc

时间:2015-09-03 08:22:15

标签: ansible ansible-playbook aws-sdk aws-opsworks

创建了一个带子网的vpc。删除该子网中的实例。因此,子网和vpc不包含任何其他实例(依赖项)。

此外,可以从控制台删除vpc。但是当通过ec2_vpc模块尝试时,会给出错误声明"依赖关系存在于此vpc下,因此无法删除"。但它可以看到从控制台删除。

因此认为此vpc下的子网可能是依赖项。 ansible文档为子网提供了模块,但是在使用它时,模块不存在表明"非法参数"

显示无法通过olle

给出的片段删除的路由表的图像

[IMG] http://i59.tinypic.com/2d7xwxt.png[/IMG]

2 个答案:

答案 0 :(得分:1)

我正在使用此代码创建一个带有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

然后我可以删除实际的VPC

- name: delete VPC
  local_action:
    module: ec2_vpc
    vpc_id: "{{ vpc.vpc_id }}"
    region: "{{ region }}"
    state: absent
    resource_tags: "{}"
    wait: yes

希望这会对你有所帮助。

答案 1 :(得分:1)

Ansible为VPC提供了ec2_vpc_net模块,您可以创建或删除VPC。 例如:

- 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

希望这会有所帮助