working on aws again
This commit is contained in:
+56
-16
@@ -1,5 +1,5 @@
|
||||
---
|
||||
# VPC Cleanup Process
|
||||
# VPC Cleanup Process with enhanced dependency handling
|
||||
# Step 1: Network Interfaces
|
||||
- name: Find network interfaces in VPC {{ vpc_id }}
|
||||
amazon.aws.ec2_eni_info:
|
||||
@@ -21,10 +21,9 @@
|
||||
ignore_errors: yes
|
||||
when: eni_info.network_interfaces | length > 0
|
||||
|
||||
- name: Update cleaned network interfaces
|
||||
set_fact:
|
||||
cleaned_resources: "{{ cleaned_resources | combine({'network_interfaces': cleaned_resources.network_interfaces + [item.id]}, recursive=True) }}"
|
||||
with_items: "{{ eni_info.network_interfaces }}"
|
||||
- name: Wait after deleting network interfaces
|
||||
pause:
|
||||
seconds: 10
|
||||
when: eni_info.network_interfaces | length > 0
|
||||
|
||||
# Step 2: Route Tables
|
||||
@@ -57,6 +56,11 @@
|
||||
with_items: "{{ rt_info.route_tables }}"
|
||||
when: not item.associations or not item.associations[0].main | default(false)
|
||||
|
||||
- name: Wait after deleting route tables
|
||||
pause:
|
||||
seconds: 10
|
||||
when: rt_info.route_tables | length > 0
|
||||
|
||||
# Step 3: Internet Gateways
|
||||
- name: Find internet gateways for VPC {{ vpc_id }}
|
||||
amazon.aws.ec2_vpc_igw_info:
|
||||
@@ -78,6 +82,11 @@
|
||||
register: igw_detached
|
||||
ignore_errors: yes
|
||||
|
||||
- name: Wait after detaching IGW
|
||||
pause:
|
||||
seconds: 15
|
||||
when: igw_detached is changed
|
||||
|
||||
- name: Delete internet gateways
|
||||
amazon.aws.ec2_vpc_igw:
|
||||
region: "{{ aws_region }}"
|
||||
@@ -119,6 +128,11 @@
|
||||
with_items: "{{ subnet_info.subnets }}"
|
||||
when: subnet_info.subnets | length > 0
|
||||
|
||||
- name: Wait after deleting subnets
|
||||
pause:
|
||||
seconds: 15
|
||||
when: subnet_info.subnets | length > 0
|
||||
|
||||
# Step 5: Security Groups (except default)
|
||||
- name: Find non-default security groups for VPC {{ vpc_id }}
|
||||
amazon.aws.ec2_security_group_info:
|
||||
@@ -145,20 +159,46 @@
|
||||
with_items: "{{ sg_info.security_groups }}"
|
||||
when: item.group_name != 'default'
|
||||
|
||||
# Step 6: Wait a bit and delete VPC
|
||||
- name: Wait before trying to delete VPC
|
||||
- name: Wait after deleting security groups
|
||||
pause:
|
||||
seconds: 10
|
||||
seconds: 15
|
||||
when: sg_info.security_groups | length > 0
|
||||
|
||||
- name: Delete VPC {{ vpc_id }}
|
||||
amazon.aws.ec2_vpc_net:
|
||||
region: "{{ aws_region }}"
|
||||
vpc_id: "{{ vpc_id }}"
|
||||
state: absent
|
||||
register: deleted_vpc
|
||||
ignore_errors: true
|
||||
# Step 6: Delete VPC with proper dependencies and retries
|
||||
- name: Wait longer before trying to delete VPC
|
||||
pause:
|
||||
seconds: 30
|
||||
|
||||
- name: Delete VPC with retries
|
||||
block:
|
||||
- name: Delete VPC {{ vpc_id }}
|
||||
amazon.aws.ec2_vpc_net:
|
||||
region: "{{ aws_region }}"
|
||||
vpc_id: "{{ vpc_id }}"
|
||||
state: absent
|
||||
register: vpc_delete_result
|
||||
retries: 5
|
||||
delay: 15
|
||||
until: vpc_delete_result is success
|
||||
rescue:
|
||||
- name: Force check dependencies again if VPC deletion failed
|
||||
amazon.aws.ec2_vpc_net_info:
|
||||
region: "{{ aws_region }}"
|
||||
vpc_ids:
|
||||
- "{{ vpc_id }}"
|
||||
register: vpc_check
|
||||
|
||||
- name: Final attempt to delete VPC if it still exists
|
||||
amazon.aws.ec2_vpc_net:
|
||||
region: "{{ aws_region }}"
|
||||
vpc_id: "{{ vpc_id }}"
|
||||
state: absent
|
||||
when: vpc_check.vpcs | length > 0
|
||||
ignore_errors: true
|
||||
register: final_vpc_delete
|
||||
|
||||
- name: Update cleaned VPCs
|
||||
set_fact:
|
||||
cleaned_resources: "{{ cleaned_resources | combine({'vpcs': cleaned_resources.vpcs + [vpc_id]}, recursive=True) }}"
|
||||
when: deleted_vpc is success
|
||||
when: (vpc_delete_result is defined and vpc_delete_result is success) or
|
||||
(final_vpc_delete is defined and final_vpc_delete is success)
|
||||
Reference in New Issue
Block a user