mirror of https://github.com/ansible/ansible.git
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.
205 lines
5.6 KiB
YAML
205 lines
5.6 KiB
YAML
- name: Prepare random number
|
|
set_fact:
|
|
rpfx: "{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
|
|
parameter: {}
|
|
run_once: yes
|
|
|
|
- name: Clearing (if) previous disks were created
|
|
azure_rm_manageddisk:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "md{{ rpfx }}{{ item }}"
|
|
managed_by: ''
|
|
state: absent
|
|
with_items:
|
|
- 1
|
|
- 2
|
|
- 3
|
|
|
|
- name: Test invalid account name (should give error)
|
|
azure_rm_manageddisk:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "invalid_char$"
|
|
disk_size_gb: 1
|
|
register: output
|
|
ignore_errors: yes
|
|
check_mode: no
|
|
|
|
- name: Assert task failed
|
|
assert: { that: "output['failed'] == True" }
|
|
|
|
- name: Create managed disk (Check Mode)
|
|
azure_rm_manageddisk:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "md{{ rpfx }}1"
|
|
storage_account_type: "Standard_LRS"
|
|
disk_size_gb: 1
|
|
tags:
|
|
testing: testing
|
|
delete: never
|
|
register: output
|
|
check_mode: yes
|
|
|
|
- name: Assert status succeeded (Check Mode)
|
|
assert:
|
|
that:
|
|
- output.changed
|
|
- output.state
|
|
|
|
- name: Create new managed disk succesfully
|
|
azure_rm_manageddisk:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "md{{ rpfx }}1"
|
|
storage_account_type: "Standard_LRS"
|
|
disk_size_gb: 1
|
|
tags:
|
|
testing: testing
|
|
delete: never
|
|
register: output
|
|
|
|
- name: Assert status succeeded and results include an Id value
|
|
assert:
|
|
that:
|
|
- output.changed
|
|
- output.state.disk_size_gb == 1
|
|
- output.state.id is defined
|
|
- output.state.os_type == None
|
|
- output.state.storage_account_type == "Standard_LRS"
|
|
|
|
- name: Copy disk to a new managed disk
|
|
azure_rm_manageddisk:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "md{{ rpfx }}2"
|
|
create_option: "copy"
|
|
source_uri: "{{ output.state.id }}"
|
|
disk_size_gb: 1
|
|
register: disk2
|
|
|
|
- name: Assert status succeeded and results include an Id value
|
|
assert:
|
|
that:
|
|
- disk2.changed
|
|
- disk2.state.id is defined
|
|
|
|
- name: Create disk to a new managed disk with zone and os type
|
|
azure_rm_manageddisk:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "md{{ rpfx }}3"
|
|
source_uri: "{{ output.state.id }}"
|
|
disk_size_gb: 1
|
|
zone: "1"
|
|
os_type: windows
|
|
register: disk3
|
|
|
|
- name: Assert status succeeded and results include an Id value
|
|
assert:
|
|
that:
|
|
- disk3.changed
|
|
- disk3.state.id is defined
|
|
- disk3.state.zone == "1"
|
|
- disk3.state.os_type == "windows"
|
|
|
|
- name: Change storage account type to an invalid type
|
|
azure_rm_manageddisk:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "md{{ rpfx }}1"
|
|
storage_account_type: "PremiumL"
|
|
disk_size_gb: 1
|
|
register: output
|
|
ignore_errors: yes
|
|
|
|
- name: Assert storage account type change failed
|
|
assert: { that: "output['failed'] == True" }
|
|
|
|
- name: Update disk options (os_type, account_type, size, tags)
|
|
azure_rm_manageddisk:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "md{{ rpfx }}1"
|
|
disk_size_gb: 2
|
|
os_type: linux
|
|
storage_account_type: "StandardSSD_LRS"
|
|
tags:
|
|
galaxy: "no"
|
|
delete: never
|
|
register: output
|
|
|
|
- assert:
|
|
that:
|
|
- output.changed
|
|
- output.state.storage_account_type == "StandardSSD_LRS"
|
|
- output.state.disk_size_gb == 2
|
|
- "output.state.tags | length == 2"
|
|
- "output.state.tags.galaxy == 'no'"
|
|
- output.state.os_type == 'linux'
|
|
|
|
- name: Gather facts to one specific disk
|
|
azure_rm_manageddisk_info:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "md{{ rpfx }}1"
|
|
register: output
|
|
|
|
- assert:
|
|
that:
|
|
- "output.ansible_info.azure_managed_disk | length == 1"
|
|
- output.ansible_info.azure_managed_disk[0].storage_account_type == "StandardSSD_LRS"
|
|
- output.ansible_info.azure_managed_disk[0].disk_size_gb == 2
|
|
- "output.ansible_info.azure_managed_disk[0].os_type == 'linux'"
|
|
|
|
- set_fact:
|
|
parameter: "{{parameter |combine({item.key: item.value})}}"
|
|
when: "{{item.key not in ['id', 'changed'] and item.value != None}}"
|
|
with_dict: "{{ output.ansible_info.azure_managed_disk[0] }}"
|
|
|
|
- name: Create disk with facts return value
|
|
azure_rm_manageddisk:
|
|
resource_group: "{{ resource_group }}"
|
|
location: "{{ parameter.location }}"
|
|
name: "{{ parameter.name }}"
|
|
storage_account_type: "{{ parameter.storage_account_type }}"
|
|
disk_size_gb: "{{ parameter.disk_size_gb }}"
|
|
create_option: "{{ parameter.create_option }}"
|
|
tags: "{{ parameter.tags }}"
|
|
register: output
|
|
|
|
- assert:
|
|
that:
|
|
- not output.changed
|
|
|
|
- name: Delete managed disk (Check Mode)
|
|
azure_rm_manageddisk:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "md{{ rpfx }}1"
|
|
state: absent
|
|
register: output
|
|
check_mode: yes
|
|
|
|
- name: Assert status succeeded
|
|
assert:
|
|
that:
|
|
- output.changed
|
|
- output.state
|
|
|
|
- name: Delete all managed disk
|
|
azure_rm_manageddisk:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "md{{ rpfx }}{{ item }}"
|
|
managed_by: ''
|
|
state: absent
|
|
with_items:
|
|
- 1
|
|
- 2
|
|
- 3
|
|
|
|
- name: Delete virtual machine
|
|
azure_rm_virtualmachine:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "tr{{ rpfx }}"
|
|
state: absent
|
|
vm_size: Standard_DS1_v2
|
|
|
|
- name: Delete public ip
|
|
azure_rm_publicipaddress:
|
|
resource_group: "{{ resource_group }}"
|
|
allocation_method: Static
|
|
name: "tr{{ rpfx }}"
|
|
state: absent
|