Merge of RedHatGov/product-demos (#56)
Co-authored-by: MKletz <michael.kletz.27@gmail.com> Co-authored-by: Ajay Chenampara <ajay.chenampara@gmail.com> Co-authored-by: dlemons-redhat <69318976+dlemons-redhat@users.noreply.github.com> Co-authored-by: Nicolas Leiva <nicolasleiva@gmail.com> Co-authored-by: benblasco <42140583+benblasco@users.noreply.github.com> Co-authored-by: Benjamin Blasco <bblasco@redhat.com> Co-authored-by: calvingsmith <4283930+calvingsmith@users.noreply.github.com> Co-authored-by: Calvin Smith <calvingsmith@users.noreply.github.com> Co-authored-by: Hicham Mourad <43329991+HichamMourad@users.noreply.github.com>
This commit is contained in:
@@ -10,10 +10,10 @@ aws_region: us-east-1
|
||||
aws_vm_name: "{{ vm_name }}"
|
||||
aws_vm_owner: "{{ vm_owner }}"
|
||||
aws_blueprint: "{{ vm_blueprint }}"
|
||||
#aws_image_filter: "{{ omit }}"
|
||||
#aws_instance_size: "{{ omit }}"
|
||||
#aws_image_architecture: "{{ omit }}"
|
||||
#aws_image_owners: "{{ omit }} "
|
||||
# aws_image_filter: "{{ omit }}"
|
||||
# aws_instance_size: "{{ omit }}"
|
||||
# aws_image_architecture: "{{ omit }}"
|
||||
# aws_image_owners: "{{ omit }} "
|
||||
aws_userdata_template: default
|
||||
aws_keypair_name: "{{ aws_vpc_name }}-{{ aws_vpc_prefix }}-demo-key"
|
||||
aws_securitygroup_name: "{{ aws_vpc_name }}-{{ aws_vpc_prefix }}-sec-group"
|
||||
@@ -21,4 +21,3 @@ aws_env_tag: prod
|
||||
aws_purpose_tag: ansible_demo
|
||||
aws_ansiblegroup_tag: cloud
|
||||
aws_ec2_wait: true
|
||||
|
||||
|
||||
@@ -17,19 +17,19 @@
|
||||
vpc_id: "{{ aws_vpc.vpc.id }}"
|
||||
region: "{{ aws_region }}"
|
||||
tags:
|
||||
Name: "{{ aws_vpc_name }}-{{aws_vpc_prefix }}-vpc-igw"
|
||||
Name: "{{ aws_vpc_name }}-{{ aws_vpc_prefix }}-vpc-igw"
|
||||
owner: "{{ aws_vpc_name }}"
|
||||
purpose: "{{ aws_purpose_tag }}"
|
||||
register: aws_gateway
|
||||
|
||||
- name: Create security group internal
|
||||
amazon.aws.ec2_group:
|
||||
amazon.aws.ec2_security_group:
|
||||
state: present
|
||||
name: "{{ aws_vpc_name }}-{{aws_vpc_prefix }}-sec-group"
|
||||
name: "{{ aws_vpc_name }}-{{ aws_vpc_prefix }}-sec-group"
|
||||
region: "{{ aws_region }}"
|
||||
description: Inbound WinRM and RDP, http for demo servers and internal AD ports
|
||||
description: Inbound WinRM and RDP, http for demo servers and internal AD ports
|
||||
rules:
|
||||
- proto: tcp
|
||||
- proto: tcp
|
||||
ports:
|
||||
- 80 # HTTP
|
||||
- 443 # HTTPS
|
||||
@@ -42,7 +42,7 @@
|
||||
from_port: -1
|
||||
cidr_ip: 0.0.0.0/0
|
||||
- proto: tcp
|
||||
ports:
|
||||
ports:
|
||||
- 80 # HTTP
|
||||
- 5986 # WinRM
|
||||
- 3389 # RDP
|
||||
@@ -55,27 +55,27 @@
|
||||
- 464 # Kerberos Authentication
|
||||
- 5432 # PostgreSQL
|
||||
- 636 # LDAPS (LDAP over TLS)
|
||||
- 873 # Rsync
|
||||
- 3268-3269 # Global Catalog
|
||||
- 873 # Rsync
|
||||
- 3268-3269 # Global Catalog
|
||||
- 1024-65535 # Ephemeral RPC ports
|
||||
cidr_ip: 10.0.0.0/16
|
||||
- proto: udp
|
||||
ports:
|
||||
- proto: udp
|
||||
ports:
|
||||
- 53 # DNS
|
||||
- 88 # Kerberos Authentication
|
||||
- 123 # NTP
|
||||
- 137-138 # Netlogon
|
||||
- 389 # LDAP
|
||||
- 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
|
||||
- proto: -1
|
||||
cidr_ip: 0.0.0.0/0
|
||||
vpc_id: "{{ aws_vpc.vpc.id }}"
|
||||
tags:
|
||||
Name: "{{ aws_vpc_name }}-{{aws_vpc_prefix }}-sec-group"
|
||||
Name: "{{ aws_vpc_name }}-{{ aws_vpc_prefix }}-sec-group"
|
||||
owner: "{{ aws_vpc_name }}"
|
||||
purpose: "{{ aws_purpose_tag }}"
|
||||
|
||||
@@ -85,34 +85,34 @@
|
||||
vpc_id: "{{ aws_vpc.vpc.id }}"
|
||||
cidr: "{{ aws_subnet_cidr }}"
|
||||
region: "{{ aws_region }}"
|
||||
map_public: yes
|
||||
map_public: true
|
||||
tags:
|
||||
Name: "{{ aws_vpc_name }}-{{aws_vpc_prefix }}-subnet"
|
||||
Name: "{{ aws_vpc_name }}-{{ aws_vpc_prefix }}-subnet"
|
||||
owner: "{{ aws_vpc_name }}"
|
||||
purpose: "{{ aws_purpose_tag }}"
|
||||
register: aws_subnet
|
||||
|
||||
- name: Create a subnet route table
|
||||
- name: Create a subnet route table
|
||||
amazon.aws.ec2_vpc_route_table:
|
||||
state: present
|
||||
state: present
|
||||
vpc_id: "{{ aws_vpc.vpc.id }}"
|
||||
region: "{{ aws_region }}"
|
||||
subnets:
|
||||
- "{{ aws_subnet.subnet.id }}"
|
||||
routes:
|
||||
- dest: 0.0.0.0/0
|
||||
- dest: 0.0.0.0/0
|
||||
gateway_id: "{{ aws_gateway.gateway_id }}"
|
||||
tags:
|
||||
Name: "{{ aws_vpc_name }}-{{aws_vpc_prefix }}-vpc-rtbl"
|
||||
tags:
|
||||
Name: "{{ aws_vpc_name }}-{{ aws_vpc_prefix }}-vpc-rtbl"
|
||||
owner: "{{ aws_vpc_name }}"
|
||||
purpose: "{{ aws_purpose_tag }}"
|
||||
|
||||
- name: Create AWS keypair
|
||||
amazon.aws.ec2_key:
|
||||
name: "{{ aws_vpc_name }}-{{aws_vpc_prefix }}-demo-key"
|
||||
name: "{{ aws_vpc_name }}-{{ aws_vpc_prefix }}-demo-key"
|
||||
region: "{{ aws_region }}"
|
||||
key_material: "{{ aws_public_key }}"
|
||||
state: present
|
||||
tags:
|
||||
owner: "{{ aws_vpc_name }}"
|
||||
purpose: "{{ aws_purpose_tag }}"
|
||||
purpose: "{{ aws_purpose_tag }}"
|
||||
|
||||
@@ -7,27 +7,27 @@
|
||||
register: aws_subnet
|
||||
|
||||
- name: AWS | CREATE VM | save subnet id
|
||||
set_fact:
|
||||
aws_subnet_id: "{{ aws_subnet.subnets|map(attribute='id')| list | last }}"
|
||||
ansible.builtin.set_fact:
|
||||
aws_subnet_id: "{{ aws_subnet.subnets | map(attribute='id') | list | last }}"
|
||||
|
||||
- name: AWS| CREATE VM | find ami
|
||||
amazon.aws.ec2_ami_info:
|
||||
region: "{{ aws_region }}"
|
||||
owners: "{{ aws_image_owners | default(omit)}}"
|
||||
owners: "{{ aws_image_owners | default(omit) }}"
|
||||
filters:
|
||||
name: "{{ aws_image_filter }}"
|
||||
architecture: "{{ aws_image_architecture | default(omit) }}"
|
||||
register: amis
|
||||
|
||||
- name: AWS| CREATE VM | save ami
|
||||
set_fact:
|
||||
ansible.builtin.set_fact:
|
||||
aws_instance_ami: >
|
||||
{{ (amis.images | selectattr('name', 'defined') | sort(attribute='creation_date'))[-2] }}
|
||||
|
||||
- name: AWS| CREATE VM | create instance
|
||||
amazon.aws.ec2_instance:
|
||||
network:
|
||||
assign_public_ip: yes
|
||||
assign_public_ip: true
|
||||
key_name: "{{ aws_keypair_name }}"
|
||||
instance_type: "{{ aws_instance_size }}"
|
||||
image_id: "{{ aws_instance_ami.image_id }}"
|
||||
@@ -43,5 +43,5 @@
|
||||
Name: "{{ aws_vm_name }}"
|
||||
wait: "{{ aws_ec2_wait }}"
|
||||
vpc_subnet_id: "{{ aws_subnet_id }}"
|
||||
user_data: "{{ lookup('template', aws_userdata_template+'.j2', template_vars=dict(aws_vm_name=vm_name)) }}"
|
||||
register: aws_vm_output
|
||||
user_data: "{{ lookup('template', aws_userdata_template + '.j2', template_vars=dict(aws_vm_name=vm_name)) }}"
|
||||
register: aws_vm_output
|
||||
|
||||
@@ -4,4 +4,4 @@
|
||||
state: absent
|
||||
instance_ids: "{{ instance_id }}"
|
||||
region: "{{ placement.region }}"
|
||||
delegate_to: localhost
|
||||
delegate_to: localhost
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
---
|
||||
##############
|
||||
# Azure Vars
|
||||
##############
|
||||
az_region: eastus
|
||||
az_rg_name: ansible
|
||||
az_rg_prefix: demo
|
||||
az_vnet_cidr_block: 10.0.0.0/16
|
||||
az_subnet_cidr: 10.0.1.0/24
|
||||
az_vm_name: "{{ vm_name }}"
|
||||
az_vm_owner: "{{ vm_owner }}"
|
||||
az_blueprint: "{{ vm_blueprint }}"
|
||||
az_vm_username: "{{ ansible_user }}"
|
||||
az_vm_password: "{{ ansible_password }}"
|
||||
az_env_tag: prod
|
||||
az_purpose_tag: ansible_demo
|
||||
az_ansiblegroup_tag: cloud
|
||||
@@ -1,76 +0,0 @@
|
||||
---
|
||||
- name: AZURE | CREATE INFRA | resource group
|
||||
azure.azcollection.azure_rm_resourcegroup:
|
||||
name: "{{ az_rg_name }}-{{ az_rg_prefix }}-rg"
|
||||
location: "{{ az_region }}"
|
||||
|
||||
- name: AZURE | CREATE INFRA | virtual network
|
||||
azure.azcollection.azure_rm_virtualnetwork:
|
||||
resource_group: "{{ az_rg_name }}-{{ az_rg_prefix }}-rg"
|
||||
name: "{{ az_rg_name }}-{{ az_rg_prefix }}-vnet"
|
||||
address_prefixes: "{{ az_vnet_cidr }}"
|
||||
|
||||
- name: AZURE | CREATE INFRA | subnet
|
||||
azure.azcollection.azure_rm_subnet:
|
||||
resource_group: "{{ az_rg_name }}-{{ az_rg_prefix }}-rg"
|
||||
name: "{{ az_rg_name }}-{{ az_rg_prefix }}-subnet }}"
|
||||
address_prefix: "{{ az_subnet_cidr }}"
|
||||
virtual_network: "{{ az_rg_name }}-{{ az_rg_prefix }}-vnet"
|
||||
|
||||
- name: AZURE | CREATE INFRA | security group
|
||||
azure.azcollection.azure_rm_securitygroup:
|
||||
resource_group: "{{ az_rg_name }}-{{ az_rg_prefix }}-rg"
|
||||
name: "{{ az_rg_name }}-{{ az_rg_prefix }}-sec-group"
|
||||
rules:
|
||||
- name: External
|
||||
protocol: Tcp
|
||||
destination_port_range:
|
||||
- 80 # HTTP
|
||||
- 443 # HTTPS
|
||||
- 5986 # WinRM
|
||||
- 3389 # RDP
|
||||
access: Allow
|
||||
priority: 1001
|
||||
direction: Inbound
|
||||
- name: Ping
|
||||
protocol: Icmp
|
||||
access: Allow
|
||||
priority: 1002
|
||||
direction: Inbound
|
||||
- name: Internal TCP
|
||||
protocol: Tcp
|
||||
destination_port_range:
|
||||
- 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
|
||||
access: Allow
|
||||
priority: 1003
|
||||
direction: Inbound
|
||||
source_address_prefix: "{{ az_vnet_cidr_block }}"
|
||||
- name: Internal UDP
|
||||
protocol: Udp
|
||||
destination_port_range:
|
||||
- 53 # DNS
|
||||
- 88 # Kerberos Authentication
|
||||
- 123 # NTP
|
||||
- 137-138 # Netlogon
|
||||
- 389 # LDAP
|
||||
- 445 # SMB
|
||||
- 464 # Kerberos Authentication
|
||||
- 1024-65535 # Ephemeral RPC ports
|
||||
access: Allow
|
||||
priority: 1004
|
||||
direction: Inbound
|
||||
source_address_prefix: "{{ az_vnet_cidr_block }}"
|
||||
@@ -1,28 +0,0 @@
|
||||
---
|
||||
- name: AZURE | CREATE VM | vnet interface
|
||||
azure.azcollection.azure_rm_networkinterface:
|
||||
resource_group: "{{ az_rg_name }}-{{ az_rg_prefix }}-rg"
|
||||
name: "{{ az_vm_name }}_nic"
|
||||
public_ip_name: "{{ az_vm_name }}_ip"
|
||||
virtual_network: "{{ az_rg_name }}-{{ az_rg_prefix }}-vnet"
|
||||
subnet: "{{ az_rg_name }}-{{ az_rg_prefix }}-subnet }}"
|
||||
security_group: "{{ az_rg_name }}-{{ az_rg_prefix }}-sec-group"
|
||||
|
||||
- name: AZURE | CREATE VM | vm
|
||||
azure.azcollection.azure_rm_virtualmachine:
|
||||
resource_group: "{{ az_rg_name }}-{{ az_rg_prefix }}-rg"
|
||||
name: "{{ az_vm_name }}"
|
||||
os_type: "{{ az_vm_os_type }}"
|
||||
vm_size: "{{ az_vm_size }}"
|
||||
admin_username: "{{ az_vm_username }}"
|
||||
admin_password: "{{ az_vm_password }}"
|
||||
network_interfaces: "{{ az_vm_name }}_nic"
|
||||
image: "{{ az_vm_image }}"
|
||||
tags:
|
||||
blueprint: "{{ az_blueprint }}"
|
||||
purpose: "{{ az_purpose_tag }}"
|
||||
env: "{{ az_env_tag }}"
|
||||
ansible_group: "{{ az_ansiblegroup_tag }}"
|
||||
owner: "{{ az_vm_owner }}"
|
||||
info: "This instance was built by Red Hat Product Demos"
|
||||
Name: "{{ az_vm_name }}"
|
||||
@@ -1,8 +0,0 @@
|
||||
---
|
||||
- name: Destroy VM
|
||||
azure.azcollection.azure_rm_virtualmachine:
|
||||
resource_group: "{{ az_rg_name }}-{{ az_rg_prefix }}-rg"
|
||||
name: "{{ inventory_hostname }}"
|
||||
state: absent
|
||||
remove_on_absent: all_autocreated
|
||||
delegate_to: localhost
|
||||
Reference in New Issue
Block a user