2017-08-11 23:16:39 +00:00
|
|
|
- name: Delete virtual machine
|
|
|
|
azure_rm_virtualmachine:
|
|
|
|
resource_group: "{{ resource_group }}"
|
|
|
|
name: testvm002
|
|
|
|
state: absent
|
2017-08-12 08:03:42 +00:00
|
|
|
vm_size: Standard_A0
|
2017-08-11 23:16:39 +00:00
|
|
|
register: output
|
|
|
|
|
2017-08-12 08:03:42 +00:00
|
|
|
- name: Create storage account name
|
|
|
|
set_fact:
|
|
|
|
storage_account: "{{ resource_group | hash('md5') | truncate(24, True, '') }}"
|
2017-08-11 23:16:39 +00:00
|
|
|
|
|
|
|
- name: Create storage account
|
|
|
|
azure_rm_storageaccount:
|
|
|
|
resource_group: "{{ resource_group }}"
|
2017-08-12 08:03:42 +00:00
|
|
|
name: "{{ storage_account }}"
|
2017-08-11 23:16:39 +00:00
|
|
|
account_type: Standard_LRS
|
|
|
|
|
|
|
|
- name: Create virtual network
|
|
|
|
azure_rm_virtualnetwork:
|
|
|
|
resource_group: "{{ resource_group }}"
|
|
|
|
name: testvm001
|
|
|
|
address_prefixes: "10.10.0.0/16"
|
|
|
|
|
|
|
|
- name: Add subnet
|
|
|
|
azure_rm_subnet:
|
|
|
|
resource_group: "{{ resource_group }}"
|
|
|
|
name: testvm001
|
|
|
|
address_prefix: "10.10.0.0/24"
|
|
|
|
virtual_network: testvm001
|
|
|
|
|
|
|
|
- name: Create public ip
|
|
|
|
azure_rm_publicipaddress:
|
|
|
|
resource_group: "{{ resource_group }}"
|
|
|
|
allocation_method: Static
|
|
|
|
name: testvm001
|
|
|
|
|
|
|
|
- name: Create security group
|
|
|
|
azure_rm_securitygroup:
|
|
|
|
resource_group: "{{ resource_group }}"
|
|
|
|
name: testvm001
|
|
|
|
|
|
|
|
- name: Create NIC
|
|
|
|
azure_rm_networkinterface:
|
|
|
|
resource_group: "{{ resource_group }}"
|
|
|
|
name: testvm001
|
|
|
|
virtual_network: testvm001
|
|
|
|
subnet: testvm001
|
|
|
|
public_ip_name: testvm001
|
|
|
|
security_group: testvm001
|
|
|
|
|
|
|
|
- name: Create virtual machine
|
|
|
|
azure_rm_virtualmachine:
|
|
|
|
resource_group: "{{ resource_group }}"
|
|
|
|
name: testvm002
|
2017-08-12 08:03:42 +00:00
|
|
|
vm_size: Standard_A0
|
|
|
|
storage_account: "{{ storage_account }}"
|
2017-08-11 23:16:39 +00:00
|
|
|
storage_container: testvm001
|
|
|
|
storage_blob: testvm001.vhd
|
|
|
|
admin_username: adminuser
|
|
|
|
admin_password: Password123!
|
|
|
|
short_hostname: testvm
|
|
|
|
os_type: Linux
|
|
|
|
network_interfaces: testvm001
|
2017-08-12 08:03:42 +00:00
|
|
|
image:
|
|
|
|
offer: UbuntuServer
|
|
|
|
publisher: Canonical
|
|
|
|
sku: 16.04-LTS
|
|
|
|
version: latest
|
2017-08-11 23:16:39 +00:00
|
|
|
register: output
|
|
|
|
|
|
|
|
- name: Restart the virtual machine
|
|
|
|
azure_rm_virtualmachine:
|
|
|
|
resource_group: "{{ resource_group }}"
|
|
|
|
name: testvm002
|
|
|
|
restarted: yes
|
2017-08-12 08:03:42 +00:00
|
|
|
vm_size: Standard_A0
|
2017-08-11 23:16:39 +00:00
|
|
|
register: output
|
|
|
|
|
|
|
|
- assert:
|
|
|
|
that:
|
|
|
|
- "azure_vm.powerstate in ['starting', 'running']"
|
|
|
|
- output.changed
|
|
|
|
|
|
|
|
- name: Deallocate the virtual machine
|
|
|
|
azure_rm_virtualmachine:
|
|
|
|
resource_group: "{{ resource_group }}"
|
|
|
|
name: testvm002
|
|
|
|
allocated: no
|
2017-08-12 08:03:42 +00:00
|
|
|
vm_size: Standard_A0
|
2017-08-11 23:16:39 +00:00
|
|
|
register: output
|
|
|
|
|
|
|
|
- assert:
|
|
|
|
that:
|
|
|
|
- azure_vm.powerstate == 'deallocated'
|
|
|
|
- output.changed
|
|
|
|
|
|
|
|
- name: Start the virtual machine
|
|
|
|
azure_rm_virtualmachine:
|
|
|
|
resource_group: "{{ resource_group }}"
|
|
|
|
name: testvm002
|
2017-08-12 08:03:42 +00:00
|
|
|
vm_size: Standard_A0
|
2017-08-11 23:16:39 +00:00
|
|
|
register: output
|
|
|
|
|
|
|
|
- assert:
|
|
|
|
that:
|
|
|
|
- "azure_vm.powerstate in ['starting', 'running']"
|
|
|
|
- output.changed
|
|
|
|
|
|
|
|
- name: Should be idempotent
|
|
|
|
azure_rm_virtualmachine:
|
|
|
|
resource_group: "{{ resource_group }}"
|
|
|
|
name: testvm002
|
2017-08-12 08:03:42 +00:00
|
|
|
vm_size: Standard_A0
|
|
|
|
storage_account: "{{ storage_account }}"
|
2017-08-11 23:16:39 +00:00
|
|
|
storage_container: testvm001
|
|
|
|
storage_blob: testvm001.vhd
|
|
|
|
admin_username: adminuser
|
|
|
|
admin_password: Password123!
|
|
|
|
short_hostname: testvm
|
|
|
|
os_type: Linux
|
|
|
|
network_interfaces: testvm001
|
2017-08-12 08:03:42 +00:00
|
|
|
image:
|
|
|
|
offer: UbuntuServer
|
|
|
|
publisher: Canonical
|
|
|
|
sku: 16.04-LTS
|
|
|
|
version: latest
|
2017-08-11 23:16:39 +00:00
|
|
|
register: output
|
|
|
|
|
|
|
|
- assert:
|
|
|
|
that: not output.changed
|
|
|
|
|
|
|
|
- name: Delete VM
|
|
|
|
azure_rm_virtualmachine:
|
|
|
|
resource_group: "{{ resource_group }}"
|
|
|
|
name: testvm002
|
|
|
|
state: absent
|
2017-08-12 08:03:42 +00:00
|
|
|
vm_size: Standard_A0
|
2017-08-11 23:16:39 +00:00
|
|
|
register: output
|
|
|
|
|
|
|
|
- name: NIC should be gone
|
|
|
|
azure_rm_networkinterface_facts:
|
|
|
|
resource_group: "{{ resource_group }}"
|
|
|
|
name: testvm001
|
|
|
|
register: output
|
|
|
|
|
|
|
|
- assert:
|
|
|
|
that: azure_networkinterfaces | length == 0
|
|
|
|
|
|
|
|
- name: PIP should be gone
|
|
|
|
azure_rm_publicipaddress_facts:
|
|
|
|
resource_group: "{{ resource_group }}"
|
|
|
|
name: testvm001
|
|
|
|
register: output
|
|
|
|
|
|
|
|
- assert:
|
|
|
|
that: azure_publicipaddresses | length == 0
|