Ansible을 사용하여 AWS 리소스(EC2 및 VPC)를 삭제하는 단계

7715 단어 ec2vpcansibleaws
모든 게시물(VPC 생성, EC2 인스턴스 시작, 시작 템플릿 생성 및 사용자 지정 AMI 생성)을 따른 경우. 다음은 삭제 작업(ansible 사용)이며 순차적으로 수행해야 합니다! EC2 인스턴스 및 사용자 지정 AMI와 같이 우리가 사용한 일부 서비스가 무료가 아니기 때문에 이 단계는 충분히 중요합니다.

관련 게시물:
""
""
""

전제 조건:

  • AWS CLIsetup 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를 사용해야 합니다. 다음 명령을 실행하여 정보를 얻을 수 있습니다.
  • 이미지 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"
        }
    ]
    


  • vpc_id

  • $ aws ec2 describe-vpcs --query 'Vpcs[?Tags[?Value==`custom_vpc`]].{VPC:VpcId, CIDR:CidrBlock}' | grep VPC | awk '{ print $2 }' | sed 's/,$//'
    "vpc-0a6bbb5ca26b09679"
    


  • route_table_id

  • $ 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
    


    자, 우리가 만든 모든 것을 삭제하기 위해 이미 마지막 게시물에 도달했습니다. 이제 필요한 것을 기반으로 자신의 가치를 사용하여 더 많은 것을 탐색할 수 있습니다. 지금은 그게 다야! 새 게시물이 게시될 때 알림을 받으려면 저를 팔로우하세요. 여러분의 피드백을 기다리겠습니다. 고맙습니다.

    좋은 웹페이지 즐겨찾기