You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ansible/test/integration/targets/azure_rm_image/tasks/main.yml

172 lines
4.4 KiB
YAML

- name: Create storage account name
set_fact:
vm_name: "vm{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}x"
public_ip_name: "pip{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
security_group_name: "sg{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
empty_disk_name: "emptydisk{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
- name: Create virtual network
azure_rm_virtualnetwork:
resource_group: "{{ resource_group }}"
name: "{{ vm_name }}"
address_prefixes: "10.10.0.0/16"
- name: Add subnet
azure_rm_subnet:
resource_group: "{{ resource_group }}"
name: "{{ vm_name }}"
address_prefix: "10.10.0.0/24"
virtual_network: "{{ vm_name }}"
- name: Create public ip
azure_rm_publicipaddress:
resource_group: "{{ resource_group }}"
allocation_method: Static
name: "{{ public_ip_name }}"
- name: Create security group
azure_rm_securitygroup:
resource_group: "{{ resource_group }}"
name: "{{ security_group_name }}"
- name: Create NIC
azure_rm_networkinterface:
resource_group: "{{ resource_group }}"
name: "{{ vm_name }}"
virtual_network: "{{ vm_name }}"
subnet: "{{ vm_name }}"
public_ip_name: "{{ public_ip_name }}"
security_group: "{{ security_group_name }}"
- name: Create virtual machine
azure_rm_virtualmachine:
resource_group: "{{ resource_group }}"
name: "{{ vm_name }}"
vm_size: Standard_A0
managed_disk_type: Standard_LRS
admin_username: adminuser
admin_password: Password123!
os_type: Linux
network_interfaces: "{{ vm_name }}"
image:
offer: UbuntuServer
publisher: Canonical
sku: 16.04-LTS
version: latest
register: vm
- name: Create new empty managed disk
azure_rm_manageddisk:
resource_group: "{{ resource_group }}"
name: "{{ empty_disk_name }}"
storage_account_type: "Standard_LRS"
disk_size_gb: 1
register: emptydisk
- name: Create an image from VM (check mode)
azure_rm_image:
resource_group: "{{ resource_group }}"
source: "{{ vm.ansible_facts.azure_vm.properties.storageProfile.osDisk.managedDisk.id }}"
name: testimage001
os_type: Linux
data_disk_sources:
- "{{ empty_disk_name }}"
check_mode: yes
register: output
- assert:
that: output.changed
- name: Create an image from VM
azure_rm_image:
resource_group: "{{ resource_group }}"
source:
name: "{{ vm_name }}"
type: disks
name: testimage001
os_type: Linux
register: output
- assert:
that:
- output.changed
- output.id
- name: Create an image from VM (idempotent)
azure_rm_image:
resource_group: "{{ resource_group }}"
source: "{{ vm.ansible_facts.azure_vm.properties.storageProfile.osDisk.managedDisk.id }}"
name: testimage001
os_type: Linux
register: output
- assert:
that:
- not output.changed
- output.id
- name: Gather information about image created
azure_rm_image_facts:
resource_group: "{{ resource_group }}"
name: testimage001
register: output
- assert:
that:
- output.images != []
- name: Delete image (check mode)
azure_rm_image:
resource_group: "{{ resource_group }}"
name: testimage001
state: absent
register: output
check_mode: yes
- assert:
that:
- output.changed
- name: Delete image
azure_rm_image:
resource_group: "{{ resource_group }}"
name: testimage001
state: absent
register: output
- assert:
that:
- output.changed
- name: Delete image (idempotent)
azure_rm_image:
resource_group: "{{ resource_group }}"
name: testimage001
state: absent
register: output
- assert:
that:
- not output.changed
- name: Delete empty disk
azure_rm_manageddisk:
resource_group: "{{ resource_group }}"
name: "{{ empty_disk_name }}"
state: absent
- name: Delete VM
azure_rm_virtualmachine:
resource_group: "{{ resource_group }}"
name: "{{ vm_name }}"
state: absent
vm_size: Standard_A0
register: output
- name: Delete public ip
azure_rm_publicipaddress:
resource_group: "{{ resource_group }}"
allocation_method: Static
name: "{{ public_ip_name }}"
state: absent