122 lines
3.3 KiB
YAML
122 lines
3.3 KiB
YAML
---
|
|
- name: Create Cloud Infra
|
|
hosts: localhost
|
|
gather_facts: no
|
|
vars:
|
|
vpc_user: workshop
|
|
vpc_name: demo
|
|
vpc_cidr_block: 10.0.0.0/16
|
|
|
|
tasks:
|
|
- name: Create VPC
|
|
amazon.aws.ec2_vpc_net:
|
|
state: present
|
|
name: "{{ vpc_name }}-ansible-vpc"
|
|
cidr_block: "{{ vpc_cidr_block }}"
|
|
tenancy: default
|
|
region: "{{ aws_region }}"
|
|
tags:
|
|
user: "{{ vpc_user }}"
|
|
purpose: Ansible Demo
|
|
register: aws_vpc
|
|
|
|
- name: Create Internet Gateway for VPC
|
|
amazon.aws.ec2_vpc_igw:
|
|
state: present
|
|
vpc_id: "{{ aws_vpc.vpc.id }}"
|
|
region: "{{ aws_region }}"
|
|
tags:
|
|
Name: "{{ vpc_user }}-{{vpc_name }}-vpc-igw"
|
|
user: "{{ vpc_user }}"
|
|
purpose: Ansible Demo
|
|
register: aws_gateway
|
|
|
|
- name: Create security group internal
|
|
amazon.aws.ec2_group:
|
|
state: present
|
|
name: "{{ vpc_user }}-{{ vpc_name }}-sec-group"
|
|
region: "{{ aws_region }}"
|
|
description: Inbound WinRM and RDP, http for demo servers and internal AD ports
|
|
rules:
|
|
- proto: tcp
|
|
ports:
|
|
- 80 # HTTP
|
|
- 443 # HTTPS
|
|
- 22 # SSH
|
|
cidr_ip: 0.0.0.0/0
|
|
- proto: icmp
|
|
to_port: -1
|
|
from_port: -1
|
|
cidr_ip: 0.0.0.0/0
|
|
- proto: tcp
|
|
ports:
|
|
- 80 # HTTP
|
|
- 5986 # WinRM
|
|
- 3389 # RDP
|
|
- 53 # DNS
|
|
- 88 # Kerberos Authentication
|
|
- 135 # RPC
|
|
- 139 # Netlogon
|
|
- 389 # LDAP
|
|
- 445 # SMB
|
|
- 464 # Kerberos Authentication
|
|
- 5432 # PostgreSQL
|
|
- 636 # LDAPS (LDAP over TLS)
|
|
- 873 # Rsync
|
|
- 3268-3269 # Global Catalog
|
|
- 1024-65535 # Ephemeral RPC ports
|
|
cidr_ip: 10.0.0.0/16
|
|
- proto: udp
|
|
ports:
|
|
- 53 # DNS
|
|
- 88 # Kerberos Authentication
|
|
- 123 # NTP
|
|
- 137-138 # Netlogon
|
|
- 389 # LDAP
|
|
- 445 # SMB
|
|
- 464 # Kerberos Authentication
|
|
- 1024-65535 # Ephemeral RPC ports
|
|
cidr_ip: 10.0.0.0/16
|
|
rules_egress:
|
|
- proto: -1
|
|
cidr_ip: 0.0.0.0/0
|
|
vpc_id: "{{ aws_vpc.vpc.id }}"
|
|
tags:
|
|
Name: "{{ vpc_user }}-{{ vpc_name }}-sec-group"
|
|
user: "{{ vpc_user}}"
|
|
purpose: Ansible Demo
|
|
|
|
- name: Create a subnet on the VPC
|
|
amazon.aws.ec2_vpc_subnet:
|
|
state: present
|
|
vpc_id: "{{ aws_vpc.vpc.id }}"
|
|
cidr: 10.0.0.0/16
|
|
region: "{{ aws_region }}"
|
|
map_public: yes
|
|
tags:
|
|
Name: "{{ vpc_user }}-{{ vpc_name }}-subnet"
|
|
user: "{{ vpc_user }}"
|
|
purpose: Ansible Demo
|
|
register: aws_subnet
|
|
|
|
- name: Create a subnet route table
|
|
amazon.aws.ec2_vpc_route_table:
|
|
state: present
|
|
vpc_id: "{{ aws_vpc.vpc.id }}"
|
|
region: "{{ aws_region }}"
|
|
subnets:
|
|
- "{{ aws_subnet.subnet.id }}"
|
|
routes:
|
|
- dest: 0.0.0.0/0
|
|
gateway_id: "{{ aws_gateway.gateway_id }}"
|
|
tags:
|
|
Name: "{{ vpc_user }}-{{ vpc_name }}-vpc-rtbl"
|
|
user: "{{ vpc_user }}"
|
|
purpose: Ansible Demo
|
|
|
|
- name: Create AWS keypair
|
|
amazon.aws.ec2_key:
|
|
name: "{{ vpc_user }}-{{ vpc_name }}-demo-key"
|
|
region: "{{ aws_region }}"
|
|
key_material: "{{ aws_public_key }}"
|
|
state: present |