123 lines
4.5 KiB
YAML
123 lines
4.5 KiB
YAML
---
|
|
# tasks file for azure-createwindowsvm
|
|
# - name: Create public IP address
|
|
# azure_rm_publicipaddress:
|
|
# resource_group: "{{RG_name}}"
|
|
# allocation_method: Static
|
|
# name: "{{hostname}}-pip"
|
|
# register: output_ip_address
|
|
|
|
# - name: Output public IP
|
|
# debug:
|
|
# msg: "The public IP is {{ output_ip_address.state.ip_address }}"
|
|
|
|
|
|
- name: Get facts for one resource group
|
|
azure_rm_resourcegroup_info:
|
|
name: "{{RG_name}}"
|
|
register: rginfo
|
|
- name: Create a network interface
|
|
azure_rm_networkinterface:
|
|
name: "{{hostname}}-nic"
|
|
resource_group: "{{RG_name}}"
|
|
location: westeurope
|
|
virtual_network: "/subscriptions/dd4dbc55-c970-4a1f-8ddd-8cb7ae7900dd/resourceGroups/rg-network-tst-01/providers/Microsoft.Network/virtualNetworks/vnet-awe-tst-01"
|
|
subnet_name: "{{subnetname}}"
|
|
enable_accelerated_networking: True
|
|
security_group: "/subscriptions/dd4dbc55-c970-4a1f-8ddd-8cb7ae7900dd/resourceGroups/rg-network-tst-01/providers/Microsoft.Network/networkSecurityGroups/nsg-tst-01-green"
|
|
ip_configurations:
|
|
- name: default
|
|
# public_ip_address_name: "{{hostname}}-pip"
|
|
primary: True
|
|
register: new_nic
|
|
|
|
- name: Get private IP of NIC
|
|
azure_rm_networkinterface_info:
|
|
resource_group: "{{RG_name}}"
|
|
name: "{{hostname}}-nic"
|
|
register: nic_info
|
|
|
|
- name: Display private IP of NIC
|
|
debug:
|
|
var: "nic_info.networkinterfaces[0].ip_configurations[0].private_ip_address"
|
|
|
|
- name: Create VM
|
|
azure_rm_virtualmachine:
|
|
resource_group: "{{RG_name}}"
|
|
name: "{{hostname}}"
|
|
vm_size: "{{vmsize}}"
|
|
admin_username: ApeAdmin
|
|
admin_password: "{{ password }}"
|
|
network_interfaces: "{{hostname}}-nic"
|
|
os_type: Windows
|
|
boot_diagnostics:
|
|
enabled: false
|
|
managed_disk_type: "Premium_LRS"
|
|
os_disk_name: "{{hostname}}-osdisk"
|
|
os_disk_size_gb: 128
|
|
image:
|
|
offer: WindowsServer
|
|
publisher: MicrosoftWindowsServer
|
|
sku: "{{win_sku}}"
|
|
version: latest
|
|
tags:
|
|
Dexcare: "{{tag_dexcare}}"
|
|
ApplicationITContact: "{{tag_ApplicationITContact}}"
|
|
DexMach_Protection: "ManagedByOther"
|
|
Schedule: "{{tag_Schedule}}"
|
|
ServiceHours: "{{tag_ServiceHours}}"
|
|
Criticality: "{{tag_Criticality}}"
|
|
UpdateSchedule: "{{tag_UpdateSchedule}}"
|
|
TeamSpecialist: "{{tag_TeamSpecialist}}"
|
|
no_log: false
|
|
|
|
# - name: Create VM script extension to enable HTTPS WinRM listener
|
|
# azure_rm_virtualmachineextension:
|
|
# name: winrm-extension
|
|
# resource_group: "{{RG_name}}"
|
|
# virtual_machine_name: "{{hostname}}"
|
|
# publisher: Microsoft.Compute
|
|
# virtual_machine_extension_type: CustomScriptExtension
|
|
# type_handler_version: '1.9'
|
|
# settings: '{"fileUris": ["https://raw.githubusercontent.com/ansible/ansible/devel/examples/scripts/ConfigureRemotingForAnsible.ps1"],"commandToExecute": "powershell -ExecutionPolicy Unrestricted -File ConfigureRemotingForAnsible.ps1"}'
|
|
# auto_upgrade_minor_version: true
|
|
|
|
- name: Enable winrm
|
|
azure_rm_virtualmachineextension:
|
|
name: winrm-extension
|
|
resource_group: "{{RG_name}}"
|
|
virtual_machine_name: "{{hostname}}"
|
|
publisher: Microsoft.Compute
|
|
virtual_machine_extension_type: CustomScriptExtension
|
|
type_handler_version: '1.9'
|
|
settings: '{"commandToExecute": "powershell winrm quickconfig -force"}'
|
|
auto_upgrade_minor_version: true
|
|
|
|
- name: Open port
|
|
azure_rm_virtualmachineextension:
|
|
name: winrm-extension
|
|
resource_group: "{{RG_name}}"
|
|
virtual_machine_name: "{{hostname}}"
|
|
publisher: Microsoft.Compute
|
|
virtual_machine_extension_type: CustomScriptExtension
|
|
type_handler_version: '1.9'
|
|
settings: {"commandToExecute": "powershell New-NetFirewallRule -DisplayName 'Winrm' -Profile 'Public' -Direction Inbound -Action Allow -Protocol TCP -LocalPort 5985"}
|
|
auto_upgrade_minor_version: true
|
|
|
|
|
|
|
|
# - name: Get facts for one Public IP
|
|
# azure_rm_publicipaddress_info:
|
|
# resource_group: "{{RG_name}}"
|
|
# name: "{{hostname}}-pip"
|
|
# register: publicipaddresses
|
|
|
|
# - name: set public ip address fact
|
|
# set_fact: publicipaddress="{{ publicipaddresses | json_query('publicipaddresses[0].ip_address')}}"
|
|
|
|
- name: wait for the WinRM port to come online
|
|
wait_for:
|
|
port: 5985
|
|
host: "{{nic_info.networkinterfaces[0].ip_configurations[0].private_ip_address}}"
|
|
timeout: 6
|
|
|