DMCA.com Protection Status Trending Topics About Devops: we are going to create a VPC using Ansible in AWS.

Sunday, 5 September 2021

we are going to create a VPC using Ansible in AWS.

 > cd /etc/ansible/roles

> mkdir vpc-roles

> cd vpc-roles 

> mkdir defaults files vars templates test tasks 

> cd tasks 

> vim main.yml 


---


 - name: create VPC

   ec2_vpc_net:

     name: "{{ vpc_name }}"

     cidr_block: "{{ vpc_cidr }}"

     region: "{{ region }}"

     state: present

     aws_access_key: "{{ aws_access_key }}"

     aws_secret_key: "{{ aws_secret_key }}"

   register: vpc



 - name: Set VPC ID in variable

   set_fact:

     vpc_id: "{{ vpc.vpc.id }}"



 - name: associate subnet to the VPC

   ec2_vpc_subnet:

    state: present

    vpc_id: "{{ vpc_id }}"

    region: "{{ region }}"

    cidr: "{{ subnet_cidr }}"

    aws_access_key: "{{ aws_access_key }}"

    aws_secret_key: "{{ aws_secret_key }}"

    map_public: yes

    resource_tags:

      Name: "{{ subnet_name }}"

   register: subnet

- name: create IGW
   ec2_vpc_igw:
    vpc_id: "{{ vpc_id }}"
    region: "{{ region }}"
    aws_access_key: "{{ aws_access_key }}"
    aws_secret_key: "{{ aws_secret_key }}"
    state: "present"
    tags:
      Name: "{{ igw_name }}"
   register: igw


 - name: Route IGW
   ec2_vpc_route_table:
    vpc_id: "{{ vpc_id }}"
    region: "{{ region }}"
    aws_access_key: "{{ aws_access_key }}"
    aws_secret_key: "{{ aws_secret_key }}"
    subnets:
      - "{{ subnet.subnet.id }}"
    routes:
      - dest: 0.0.0.0/0
        gateway_id: "{{ igw.gateway_id  }}"
    tags:
      Name: "{{ route_name }}"
- name: Create Security Group
   ec2_group:
    name: Web DMZ
    description: DMZ Security Group
    vpc_id: "{{ vpc_id }}"
    region: "{{ region }}"
    aws_access_key: "{{ aws_access_key }}"
    aws_secret_key: "{{ aws_secret_key }}"
    rules:
      - proto: tcp
        ports:
        - 80
        cidr_ip: 0.0.0.0/0
      - proto: tcp
        ports:
        - 22
        cidr_ip: 0.0.0.0/0
   register: security_group

 - name: create a new ec2 key pair, returns generated private key
   ec2_key:
    aws_access_key: "{{ aws_access_key }}"
    aws_secret_key: "{{ aws_secret_key }}"
    name: "{{ keypair_name }}"
    region: "{{ region }}"
   register: keypair
   tags:
    - ec2_key

 - debug:
      var: keypair
   tags:
    - ec2_key
- name: Copy EC2 Key Pair private key locally
   copy: content="{{ keypair.key.private_key }}" dest={{ ec2_key_directory }}key.ppk
   when: keypair.changed == true
   tags:
    - ec2_key

 - name: Create EC2 Instance
   ec2:
    image: ami-087c17d1fe0178315
    wait: yes
    instance_type: t2.small
    region: "{{ region }}"
    group_id: "{{ security_group.group_id }}"
    vpc_subnet_id: "{{ subnet.subnet.id }}"
    key_name: "{{ keypair.key.name  }}"
    count_tag: "{{ ec2_tag }}"
    exact_count: 1
    aws_access_key: "{{ aws_access_key }}"
    aws_secret_key: "{{ aws_secret_key }}"
  ______________________________________________________________

> cd vars 
> vim main.yml


---
  
hosts: all
vars:
 ansible_python_interpreter: /usr/bin/python3


aws_access_key: AA2YKZL3BBPLMX7X2F
aws_secret_key: :wqXl9LJ7KRtyR05fgdSOV/GeQFsViCzM0ClwQPMiP
region: us-east-1



# VPC
vpc_cidr: 10.10.0.0/24
vpc_name: "Ansible VPC3"

# Subnet
subnet_name: "Ansible Subnet"
subnet_cidr: 10.10.0.0/26

igw_name: "Traffic IGW"


#route table name
route_name: "Public Ansible"

securitygroup_name: "Ansible Security Group"

ec2_tag: "WebServer"


#key storage location
ec2_key_directory: "/home/abidmoon/"
____________________________________



> cd tests 

> vim tests.yml


---
- hosts: localhost
  remote_user: root
  roles:
    - vpc-roles
__________________________




ansible-playbook test.yml



done 

No comments: