Ansible을 사용하여 AWS 리소스(EC2 및 VPC)를 삭제하는 단계
관련 게시물:
""
""
""
전제 조건:
AWS CLI 및 setup at least one credential ;
Ansible ;
ansible-galaxy collection install community.aws
를 실행하여 AWS에 대한 Ansible 수집. 목록:
---
localhost:
hosts:
127.0.0.1:
아래 작업 중 일부는 사용자 지정 AMI의 image_id, vpc_id 및 route_table_id와 같은 ID를 사용해야 합니다. 다음 명령을 실행하여 정보를 얻을 수 있습니다.
$ aws ec2 describe-images --filters "Name=name,Values=amazonlinux2_httpd_ami" --query 'Images[].{Name:Name, ID:ImageId}'
[
{
"Name": "amazonlinux2_httpd_ami",
"ID": "ami-0c1cfb0a18f5e4451"
}
]
$ aws ec2 describe-vpcs --query 'Vpcs[?Tags[?Value==`custom_vpc`]].{VPC:VpcId, CIDR:CidrBlock}' | grep VPC | awk '{ print $2 }' | sed 's/,$//'
"vpc-0a6bbb5ca26b09679"
$ aws ec2 describe-route-tables --filters "Name=vpc-id,Values=vpc-0a6bbb5ca26b09679" --query 'RouteTables[].Associations[?Main==`false`].[RouteTableId]'
[
[
[
"rtb-03442f1c5afa52db0"
],
[
"rtb-03442f1c5afa52db0"
],
[
"rtb-03442f1c5afa52db0"
]
],
[]
]
이제 삭제 작업 생성을 시작하겠습니다!
플레이북: ec2_del.yml
1. 모든 EC2 인스턴스 종료
- name: ec2_del
hosts: localhost
connection: local
gather_facts: no
tasks:
- name: terminate all running instances
amazon.aws.ec2_instance:
region: ap-southeast-3
state: absent
filters:
instance-state-name: running
tags:
- ec2_delete_all
- ec2_terminate
2. AMI 등록 취소
- name: deregister ami
amazon.aws.ec2_ami:
image_id: ami-0c1cfb0a18f5e4451
delete_snapshot: True
state: absent
tags:
- ec2_delete_all
- ec2_ami_delete
3. 시작 템플릿 삭제
- name: delete launch template
community.aws.ec2_launch_template:
name: amazonlinux2_httpd_template
state: absent
tags:
- ec2_delete_all
- ec2_template_delete
4. 보안그룹 삭제
- name: delete security group
amazon.aws.ec2_group:
name: ssh-web
state: absent
region: ap-southeast-3
tags:
- ec2_delete_all
- ec2_sg_delete
5. 커스텀 라우트 테이블 삭제(비메인)
- name: delete custom route table
amazon.aws.ec2_vpc_route_table:
vpc_id: vpc-0a6bbb5ca26b09679
region: ap-southeast-3
route_table_id: rtb-03442f1c5afa52db0
lookup: id
state: absent
tags:
- ec2_delete_all
- ec2_rt_delete
6. 인터넷 게이트웨이 삭제
- name: delete internet gateway
amazon.aws.ec2_vpc_igw:
vpc_id: vpc-0a6bbb5ca26b09679
state: absent
tags:
- ec2_delete_all
- ec2_igw_delete
7. 서브넷 삭제
- name: delete all subnets in a vpc
amazon.aws.ec2_vpc_subnet:
vpc_id: vpc-0a6bbb5ca26b09679
state: absent
cidr: "{{ item }}"
loop:
- 10.0.1.0/28
- 10.0.2.0/28
- 10.0.3.0/28
tags:
- ec2_delete_all
- ec2_subnet_delete
8. VPC 삭제
삭제하기 전에 이 VPC와 연결된 것이 없는지 확인하십시오. 그래서 위의 단계를 순차적으로 진행해야 한다고 말씀드린 것입니다.
- name: delete vpc
amazon.aws.ec2_vpc_net:
name: custom_vpc
region: ap-southeast-3
cidr_block: 10.0.0.0/16
purge_cidrs: true
state: absent
tags:
- ec2_delete_all
- ec2_vpc_delete
9. 키 페어 삭제
- name: delete keypair
amazon.aws.ec2_key:
name: ec2-user
state: absent
tags:
- ec2_delete_all
- ec2_key_delete
플레이북을 실행하세요!
$ ansible-playbook -i host.yml ec2_del.yml
PLAY [ec2_del] **********************************************************************************************************************************************************
TASK [terminate all running instances] **********************************************************************************************************************************
changed: [127.0.0.1]
TASK [deregister ami] ***************************************************************************************************************************************************
changed: [127.0.0.1]
TASK [delete launch template] *******************************************************************************************************************************************
changed: [127.0.0.1]
TASK [delete security group] ********************************************************************************************************************************************
changed: [127.0.0.1]
TASK [delete custom route table] ****************************************************************************************************************************************
changed: [127.0.0.1]
TASK [delete internet gateway] ******************************************************************************************************************************************
changed: [127.0.0.1]
TASK [delete all subnets in a vpc] **************************************************************************************************************************************
changed: [127.0.0.1] => (item=10.0.1.0/28)
changed: [127.0.0.1] => (item=10.0.2.0/28)
changed: [127.0.0.1] => (item=10.0.3.0/28)
TASK [delete vpc] *******************************************************************************************************************************************************
changed: [127.0.0.1]
TASK [delete keypair] ***************************************************************************************************************************************************
changed: [127.0.0.1]
PLAY RECAP **************************************************************************************************************************************************************
127.0.0.1 : ok=9 changed=9 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
자, 우리가 만든 모든 것을 삭제하기 위해 이미 마지막 게시물에 도달했습니다. 이제 필요한 것을 기반으로 자신의 가치를 사용하여 더 많은 것을 탐색할 수 있습니다. 지금은 그게 다야! 새 게시물이 게시될 때 알림을 받으려면 저를 팔로우하세요. 여러분의 피드백을 기다리겠습니다. 고맙습니다.
Reference
이 문제에 관하여(Ansible을 사용하여 AWS 리소스(EC2 및 VPC)를 삭제하는 단계), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/aws-builders/delete-aws-ec2-vpc-using-ansible-5gh0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)