You are on page 1of 4


yum install ansible



cd /etc/ansible

vim hosts



vim ec2-instance.yml


- name: Provision an EC2 Instance

hosts: local

connection: local

gather_facts: False

tags: provisioning

# Necessary Variables for creating/provisioning the EC2 Instance


0.0.micro security_group: ansible-webserver # Change the security group name here image: ami-719fb712 # This is an AMI i created myself keypair: agix-key # This is one of my keys that i already have in AWS region: ap-southeast-2 # Change the Region count: 1 # Task that will be used to Launch/Create an EC2 Instance tasks: .name: Create a security group local_action: module: ec2_group name: "{{ security_group }}" description: Security Group for webserver Servers region: "{{ region }}" rules: . instance_type: t2.proto: tcp from_port: 22 to_port: 22 cidr_ip: 0.0.proto: tcp from_port: 80 to_port: 80 cidr_ip: 0.0.0/0 .0/0 .

0/0 rules_egress: ./hosts" regexp={{ Launch the new EC2 Instance local_action: ec2 group={{ security_group }} instance_type={{ instance_type}} image={{ image }} wait=true region={{ region }} keypair={{ keypair }} count={{count}} register: ec2 .0.0.0/0 register: basic_firewall .proto: all cidr_ip: 0.public_ip }} . .name: Add the newly created EC2 instance(s) to the local host group (located inside the directory) local_action: lineinfile dest=".proto: tcp from_port: 443 to_port: 443 cidr_ip: 0.0.public_ip }} insertafter="[webserver]" line={{ item.

.name: Add tag to Instance(s) local_action: ec2_tag resource={{ item.public_ip }} port=22 state=started with_items: ec2./hosts ec2-instance.yml Thanks .name: Wait for SSH to come up local_action: wait_for host={{ item..!! .instances .instances args: tags: Name: webserver :wq! run the ansible play-book ansible-playbook -i .id }} region={{ region }} state=present with_items: ec2. with_items: ec2.instances .