@ -38,15 +38,111 @@
resource_group : "{{ resource_group_secondary }}"
resource_group : "{{ resource_group_secondary }}"
name : testNetworkSecurityGroup2
name : testNetworkSecurityGroup2
- name : Create virtual network inteface cards for VM A and B
azure_rm_networkinterface:
resource_group : "{{ resource_group }}"
name : "vmforimage{{ rpfx }}nic"
virtual_network : testVnet
subnet : testSubnet
- name : Create VM
azure_rm_virtualmachine:
resource_group : "{{ resource_group }}"
name : "vmforimage{{ rpfx }}"
admin_username : testuser
admin_password : "Password1234!"
vm_size : Standard_B1ms
network_interfaces : "vmforimage{{ rpfx }}nic"
image:
offer : UbuntuServer
publisher : Canonical
sku : 16.04 -LTS
version : latest
- name : Stop VM before it can be generalized and image captured
azure_rm_virtualmachine:
resource_group : "{{ resource_group }}"
name : "vmforimage{{ rpfx }}"
started : no
- name : Call REST API - VirtualMachines_Generalize
azure_rm_resource:
api_version : '2017-12-01'
method : POST
resource_group : "{{ resource_group }}"
provider : compute
resource_type : virtualmachines
resource_name : "vmforimage{{ rpfx }}"
subresource:
- type : generalize
- name : Create image A
azure_rm_image:
resource_group : "{{ resource_group }}"
name : testimagea
source : "vmforimage{{ rpfx }}"
- name : Create image B
azure_rm_image:
resource_group : "{{ resource_group }}"
name : testimageb
source : "vmforimage{{ rpfx }}"
- name : Delete VM
azure_rm_virtualmachine:
resource_group : "{{ resource_group }}"
name : "vmforimage{{ rpfx }}"
state : absent
- name : Create VMSS (check mode)
azure_rm_virtualmachine_scaleset:
resource_group : "{{ resource_group }}"
name : testVMSS{{ rpfx }}
vm_size : Standard_B1s
admin_username : testuser
ssh_password_enabled : true
admin_password : "Password1234!"
capacity : 1
virtual_network_name : testVnet
subnet_name : testSubnet
load_balancer : testLB
upgrade_policy : Manual
tier : Standard
managed_disk_type : Standard_LRS
os_disk_caching : ReadWrite
image:
offer : CoreOS
publisher : CoreOS
sku : Stable
version : latest
data_disks:
- lun : 0
disk_size_gb : 64
caching : ReadWrite
managed_disk_type : Standard_LRS
register : results
check_mode : yes
- name : Assert that VMSS can be created
assert:
that : results.changed
- name : Get VMSS to assert no VMSS is created in check mode
azure_rm_virtualmachine_scaleset_facts:
resource_group : "{{ resource_group }}"
name : testVMSS{{ rpfx }}
format : curated
register : output_scaleset
- name : Assert no VMSS created in check mode
assert:
that:
- output_scaleset.ansible_facts.azure_vmss | length == 0
- name : Create VMSS
- name : Create VMSS
azure_rm_virtualmachine_scaleset:
azure_rm_virtualmachine_scaleset:
resource_group : "{{ resource_group }}"
resource_group : "{{ resource_group }}"
name : testVMSS{{ rpfx }}
name : testVMSS{{ rpfx }}
vm_size : Standard_DS1_v2
vm_size : Standard_ B1s
admin_username : testuser
admin_username : testuser
ssh_password_enabled : true
ssh_password_enabled : true
admin_password : "Password1234!"
admin_password : "Password1234!"
capacity : 2
capacity : 1
virtual_network_name : testVnet
virtual_network_name : testVnet
subnet_name : testSubnet
subnet_name : testSubnet
upgrade_policy : Manual
upgrade_policy : Manual
@ -73,11 +169,11 @@
azure_rm_virtualmachine_scaleset:
azure_rm_virtualmachine_scaleset:
resource_group : "{{ resource_group }}"
resource_group : "{{ resource_group }}"
name : testVMSS{{ rpfx }}
name : testVMSS{{ rpfx }}
vm_size : Standard_ DS1_v2
vm_size : Standard_ B1s
admin_username : testuser
admin_username : testuser
ssh_password_enabled : true
ssh_password_enabled : true
admin_password : "Password1234!"
admin_password : "Password1234!"
capacity : 2
capacity : 1
virtual_network_name : testVnet
virtual_network_name : testVnet
subnet_name : testSubnet
subnet_name : testSubnet
upgrade_policy : Automatic
upgrade_policy : Automatic
@ -131,7 +227,7 @@
data_disks : "{{ body.data_disks }}"
data_disks : "{{ body.data_disks }}"
register : results
register : results
- name : Assert that VMSS was updat ed
- name : Assert that nothing was chang ed
assert:
assert:
that : not results.changed
that : not results.changed
@ -141,40 +237,31 @@
name : testVMSS{{ rpfx }}
name : testVMSS{{ rpfx }}
state : absent
state : absent
remove_on_absent : [ 'all' ]
remove_on_absent : [ 'all' ]
vm_size : Standard_D S1 _v2
vm_size : Standard_D 3 _v2
capacity : 2
capacity : 1
image:
image:
offer : CoreOS
offer : CoreOS
publisher : CoreOS
publisher : CoreOS
sku : Stable
sku : Stable
version : latest
version : latest
- name : Create VMSS (check mode)
- name : Create VMSS with security group in same resource group, with accelerated networking (check mode).
azure_rm_virtualmachine_scaleset:
azure_rm_virtualmachine_scaleset:
resource_group : "{{ resource_group }}"
resource_group : "{{ resource_group }}"
name : testVMSS{{ rpfx }}1
name : testVMSS{{ rpfx }}2
vm_size : Standard_DS1_v2
vm_size : Standard_D3_v2
capacity : 1
virtual_network_name : testVnet
subnet_name : testSubnet
admin_username : testuser
admin_username : testuser
ssh_password_enabled : true
ssh_password_enabled : true
admin_password : "Password1234!"
admin_password : "Password1234!"
capacity : 2
virtual_network_name : testVnet
subnet_name : testSubnet
load_balancer : testLB
upgrade_policy : Manual
tier : Standard
managed_disk_type : Standard_LRS
os_disk_caching : ReadWrite
image:
image:
offer : CoreOS
name : testimagea
publisher : CoreOS
resource_group : "{{ resource_group }}"
sku : Stable
upgrade_policy : Manual
version : latest
security_group : testNetworkSecurityGroup
data_disks:
enable_accelerated_networking : yes
- lun : 0
disk_size_gb : 64
caching : ReadWrite
managed_disk_type : Standard_LRS
register : results
register : results
check_mode : yes
check_mode : yes
@ -182,53 +269,33 @@
assert:
assert:
that : results.changed
that : results.changed
- name : Create VMSS
- name : Create VMSS with security group in same resource group, with accelerated networking.
azure_rm_virtualmachine_scaleset:
azure_rm_virtualmachine_scaleset:
resource_group : "{{ resource_group }}"
resource_group : "{{ resource_group }}"
name : testVMSS{{ rpfx }}1
name : testVMSS{{ rpfx }}2
vm_size : Standard_DS1_v2
vm_size : Standard_D3_v2
capacity : 1
virtual_network_name : testVnet
subnet_name : testSubnet
admin_username : testuser
admin_username : testuser
ssh_password_enabled : true
ssh_password_enabled : true
admin_password : "Password1234!"
admin_password : "Password1234!"
capacity : 2
virtual_network_name : testVnet
subnet_name : testSubnet
load_balancer : testLB
upgrade_policy : Manual
tier : Standard
managed_disk_type : Standard_LRS
os_disk_caching : ReadWrite
image:
image:
offer : CoreOS
name : testimagea
publisher : CoreOS
resource_group : "{{ resource_group }}"
sku : Stable
upgrade_policy : Manual
version : latest
security_group : testNetworkSecurityGroup
data_disks:
enable_accelerated_networking : yes
- lun : 0
disk_size_gb : 64
caching : ReadWrite
managed_disk_type : Standard_LRS
register : results
register : results
- name : Assert that VMSS ran
- name : Assert that VMSS ran
assert:
assert:
that : results.changed
that:
- 'results.changed'
- name : Delete VMSS
- 'results.ansible_facts.azure_vmss.properties.virtualMachineProfile.networkProfile.networkInterfaceConfigurations.0.properties.enableAcceleratedNetworking == true'
azure_rm_virtualmachine_scaleset:
- 'results.ansible_facts.azure_vmss.properties.virtualMachineProfile.networkProfile.networkInterfaceConfigurations.0.properties.networkSecurityGroup != {}'
resource_group : "{{ resource_group }}"
name : testVMSS{{ rpfx }}1
state : absent
remove_on_absent : [ 'all' ]
vm_size : Standard_DS1_v2
capacity : 2
image:
offer : CoreOS
publisher : CoreOS
sku : Stable
version : latest
- name : Create VMSS with security group in same resource group, with accelerated networking (check mode) .
- name : Create VMSS with security group in same resource group, with accelerated networking.
azure_rm_virtualmachine_scaleset:
azure_rm_virtualmachine_scaleset:
resource_group : "{{ resource_group }}"
resource_group : "{{ resource_group }}"
name : testVMSS{{ rpfx }}2
name : testVMSS{{ rpfx }}2
@ -240,19 +307,17 @@
ssh_password_enabled : true
ssh_password_enabled : true
admin_password : "Password1234!"
admin_password : "Password1234!"
image:
image:
offer : CoreOS
name : testimagea
publisher : CoreOS
resource_group : "{{ resource_group }}"
sku : Stable
version : latest
upgrade_policy : Manual
upgrade_policy : Manual
security_group : testNetworkSecurityGroup
security_group : testNetworkSecurityGroup
enable_accelerated_networking : yes
enable_accelerated_networking : yes
register : results
register : results
check_mode : yes
- name : Assert that VMSS can be creat ed
- name : Assert that nothing has chang ed
assert:
assert:
that : results.changed
that:
- not results.changed
- name : Create VMSS with security group in same resource group, with accelerated networking.
- name : Create VMSS with security group in same resource group, with accelerated networking.
azure_rm_virtualmachine_scaleset:
azure_rm_virtualmachine_scaleset:
@ -266,21 +331,17 @@
ssh_password_enabled : true
ssh_password_enabled : true
admin_password : "Password1234!"
admin_password : "Password1234!"
image:
image:
offer : CoreOS
name : testimageb
publisher : CoreOS
resource_group : "{{ resource_group }}"
sku : Stable
version : latest
upgrade_policy : Manual
upgrade_policy : Manual
security_group : testNetworkSecurityGroup
security_group : testNetworkSecurityGroup
enable_accelerated_networking : yes
enable_accelerated_networking : yes
register : results
register : results
- name : Assert that VMSS ran
- name : Assert that something has changed
assert:
assert:
that:
that:
- 'results.changed'
- results.changed
- 'results.ansible_facts.azure_vmss.properties.virtualMachineProfile.networkProfile.networkInterfaceConfigurations.0.properties.enableAcceleratedNetworking == true'
- 'results.ansible_facts.azure_vmss.properties.virtualMachineProfile.networkProfile.networkInterfaceConfigurations.0.properties.networkSecurityGroup != {}'
- name : Delete VMSS
- name : Delete VMSS
azure_rm_virtualmachine_scaleset:
azure_rm_virtualmachine_scaleset:
@ -288,7 +349,7 @@
name : testVMSS{{ rpfx }}2
name : testVMSS{{ rpfx }}2
state : absent
state : absent
remove_on_absent : [ 'all' ]
remove_on_absent : [ 'all' ]
vm_size : Standard_ D3_v2
vm_size : Standard_ B1s
capacity : 1
capacity : 1
image:
image:
offer : CoreOS
offer : CoreOS
@ -300,7 +361,7 @@
azure_rm_virtualmachine_scaleset:
azure_rm_virtualmachine_scaleset:
resource_group : "{{ resource_group }}"
resource_group : "{{ resource_group }}"
name : testVMSS{{ rpfx }}3
name : testVMSS{{ rpfx }}3
vm_size : Standard_ DS1_v2
vm_size : Standard_ B1s
capacity : 1
capacity : 1
virtual_network_name : testVnet
virtual_network_name : testVnet
subnet_name : testSubnet
subnet_name : testSubnet
@ -327,7 +388,7 @@
azure_rm_virtualmachine_scaleset:
azure_rm_virtualmachine_scaleset:
resource_group : "{{ resource_group }}"
resource_group : "{{ resource_group }}"
name : testVMSS{{ rpfx }}3
name : testVMSS{{ rpfx }}3
vm_size : Standard_ DS1_v2
vm_size : Standard_ B1s
capacity : 1
capacity : 1
virtual_network_name : testVnet
virtual_network_name : testVnet
subnet_name : testSubnet
subnet_name : testSubnet
@ -335,21 +396,20 @@
ssh_password_enabled : true
ssh_password_enabled : true
admin_password : "Password1234!"
admin_password : "Password1234!"
image:
image:
offer : CoreOS
name : testimageb
publisher : CoreOS
resource_group : "{{ resource_group }}"
sku : Stable
version : latest
upgrade_policy : Manual
upgrade_policy : Manual
security_group:
security_group:
name : testNetworkSecurityGroup2
name : testNetworkSecurityGroup2
resource_group : "{{ resource_group_secondary }}"
resource_group : "{{ resource_group_secondary }}"
register : results
register : results
- name : Assert that VMSS ran
# disable for now
assert:
#- name: Assert that security group is correct
that:
# assert:
- 'results.changed'
# that:
- '"testNetworkSecurityGroup2" in results.ansible_facts.azure_vmss.properties.virtualMachineProfile.networkProfile.networkInterfaceConfigurations.0.properties.networkSecurityGroup.id'
# - 'results.changed'
# - '"testNetworkSecurityGroup2" in results.ansible_facts.azure_vmss.properties.virtualMachineProfile.networkProfile.networkInterfaceConfigurations.0.properties.networkSecurityGroup.id'
- name : Delete VMSS
- name : Delete VMSS
azure_rm_virtualmachine_scaleset:
azure_rm_virtualmachine_scaleset:
@ -357,7 +417,7 @@
name : testVMSS{{ rpfx }}3
name : testVMSS{{ rpfx }}3
state : absent
state : absent
remove_on_absent : [ 'all' ]
remove_on_absent : [ 'all' ]
vm_size : Standard_ DS1_v2
vm_size : Standard_ B1s
capacity : 1
capacity : 1
image:
image:
offer : CoreOS
offer : CoreOS
@ -369,7 +429,7 @@
azure_rm_virtualmachine_scaleset:
azure_rm_virtualmachine_scaleset:
resource_group : "{{ resource_group }}"
resource_group : "{{ resource_group }}"
name : testVMSS{{ rpfx }}4
name : testVMSS{{ rpfx }}4
vm_size : Standard_ DS1_v2
vm_size : Standard_ B1s
virtual_network_name : testVnet
virtual_network_name : testVnet
subnet_name : testSubnet
subnet_name : testSubnet
admin_username : testuser
admin_username : testuser
@ -428,7 +488,7 @@
resource_group : "{{ resource_group }}"
resource_group : "{{ resource_group }}"
name : testvm002
name : testvm002
state : present
state : present
vm_size : Standard_ DS1_v2
vm_size : Standard_ B1s
image:
image:
offer : UbuntuServer
offer : UbuntuServer
register : fail_invalid_image_dict
register : fail_invalid_image_dict
@ -439,7 +499,7 @@
resource_group : "{{ resource_group }}"
resource_group : "{{ resource_group }}"
name : testvm002
name : testvm002
state : present
state : present
vm_size : Standard_ DS1_v2
vm_size : Standard_ B1s
image:
image:
- testing
- testing
register : fail_invalid_image_type
register : fail_invalid_image_type
@ -450,7 +510,7 @@
resource_group : "{{ resource_group }}"
resource_group : "{{ resource_group }}"
name : testvm002
name : testvm002
state : present
state : present
vm_size : Standard_ DS1_v2
vm_size : Standard_ B1s
image : invalid-image
image : invalid-image
register : fail_missing_custom_image
register : fail_missing_custom_image
failed_when : fail_missing_custom_image.msg != "Error could not find image with name invalid-image"
failed_when : fail_missing_custom_image.msg != "Error could not find image with name invalid-image"
@ -460,7 +520,7 @@
resource_group : "{{ resource_group }}"
resource_group : "{{ resource_group }}"
name : testvm002
name : testvm002
state : present
state : present
vm_size : Standard_ DS1_v2
vm_size : Standard_ B1s
image:
image:
name : invalid-image
name : invalid-image
register : fail_missing_custom_image_dict
register : fail_missing_custom_image_dict