68 lines
2.0 KiB
YAML
68 lines
2.0 KiB
YAML
# Description
|
|
# ===========
|
|
# This playbook create an Azure VM with public IP, and open 22 port for SSH
|
|
|
|
- name: Create Azure VM
|
|
hosts: localhost
|
|
connection: local
|
|
environment:
|
|
AZURE_AD_USER: ansible
|
|
AZURE_PASSWORD: Zapata99!
|
|
AZURE_SUBCRIPTION_ID: bb66f723-9eb9-405b-8063-2e722a5a5a45
|
|
vars:
|
|
resource_group: vmdemo
|
|
vm_name: testvm
|
|
location: eastus
|
|
tasks:
|
|
- name: Create a resource group
|
|
azure_rm_resourcegroup:
|
|
name: "{{ resource_group }}"
|
|
location: "{{ location }}"
|
|
- name: Create virtual network
|
|
azure_rm_virtualnetwork:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ vm_name }}"
|
|
address_prefixes: "10.0.0.0/16"
|
|
- name: Add subnet
|
|
azure_rm_subnet:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ vm_name }}"
|
|
address_prefix: "10.0.1.0/24"
|
|
virtual_network: "{{ vm_name }}"
|
|
- name: Create public IP address
|
|
azure_rm_publicipaddress:
|
|
resource_group: "{{ resource_group }}"
|
|
allocation_method: Static
|
|
name: "{{ vm_name }}"
|
|
- name: Create Network Security Group that allows SSH
|
|
azure_rm_securitygroup:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ vm_name }}"
|
|
rules:
|
|
- name: SSH
|
|
protocol: Tcp
|
|
destination_port_range: 22
|
|
access: Allow
|
|
priority: 1001
|
|
direction: Inbound
|
|
- name: Create virtual network inteface card
|
|
azure_rm_networkinterface:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ vm_name }}"
|
|
virtual_network: "{{ vm_name }}"
|
|
subnet: "{{ vm_name }}"
|
|
public_ip_name: "{{ vm_name }}"
|
|
security_group: "{{ vm_name }}"
|
|
- name: Create VM
|
|
azure_rm_virtualmachine:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ vm_name }}"
|
|
vm_size: Standard_DS1_v2
|
|
admin_username: azureuser
|
|
admin_password: Password@123
|
|
network_interfaces: "{{ vm_name }}"
|
|
image:
|
|
offer: RHEL
|
|
publisher: RedHat
|
|
sku: 7-LVM
|
|
version: latest |