Friday, March 16, 2018

Terminate EC2 instances Ansible Playbook Example | How to terminate EC2 instances using Ansible playbook?

Please find a simple Ansible playbook for terminating EC2 instance in AWS using instance id.

Pre-requisites:
Make sure you create an IAM role with AmazonEC2FullAccess policy and attach the role to EC2 instance where Ansible was installed.

Watch the steps in YouTube channel:

Login to EC2 instance using Git bash or ITerm/putty where you installed Ansible. Execute the below command to edit Ansible hosts or inventory file

sudo vi /etc/ansible/hosts 

Add the below two lines in the end of the file:
[localhost]
local

save the file and come out of it.

Create the playbook by executing below command:

sudo vi terminate.yml 
---
 - name: ec2 provisioning using Ansible
   hosts: local
   connection: local
   gather_facts: False

 - hosts: local
   gather_facts: False
   connection: local
   vars:
     - region: 'us-east-1'
     - ec2_id: 'i-05f39cfb80c97df38'
   tasks:
     - name: Terminate instances
       ec2_instance:
         state='absent'
         instance_ids='{{ ec2_id }}'
         region='{{ region }}'

This playbook can be executed by two ways. Either mention instance ID in the ansible playbook or pass as an argument. Intstance Id can be taken from AWS mgmt console.



ansible-playbook terminate.yml -e ec2_id=i-xxxx
PLAY [ec2 provisioning using Ansible] *********************************************************************
PLAY [local] **********************************************************************************************
TASK [Terminate instances] ********************************************************************************
ok: [local -> localhost]

PLAY RECAP ************************************************************************************************
local                      : ok=1    changed=0    unreachable=0    failed=0


8 comments: