mirror of https://github.com/ansible/ansible.git
Migrate roles from ansible/azure-testing (#28074)
* Migrate roles from ansible/azure-testing as-is. * Fix yamllint issues. * Remove unused binary file.pull/28095/head
parent
8b92369678
commit
c27ebfc368
@ -0,0 +1,27 @@
|
||||
- name: Create Azure Deploy
|
||||
azure_rm_deployment:
|
||||
resource_group: Test_Deployment
|
||||
template_link: 'https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-simple-linux/azuredeploy.json'
|
||||
parameters:
|
||||
adminUsername:
|
||||
value: chouseknecht
|
||||
adminPassword:
|
||||
value: password123!
|
||||
dnsLabelPrefix:
|
||||
value: testvm9910001
|
||||
ubuntuOSVersion:
|
||||
value: "14.04.2-LTS"
|
||||
# debug: "{{ playbook_debug }}"
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- name: Add new instance to host group
|
||||
add_host:
|
||||
hostname: "{{ item.vm_name }}"
|
||||
ansible_host: "{{ item['ips'][0].public_ip }}"
|
||||
ansible_user: chouseknecht
|
||||
ansible_ssh_pass: password123!
|
||||
groupname: azure_vms
|
||||
with_items: "{{ output.deployment.instances }}"
|
@ -0,0 +1,427 @@
|
||||
- name: Create resource group
|
||||
azure_rm_resourcegroup:
|
||||
name: "{{ resource_group }}"
|
||||
location: "{{ location }}"
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- name: Create virtual network
|
||||
azure_rm_virtualnetwork:
|
||||
name: vnet001
|
||||
resource_group: "{{ resource_group }}"
|
||||
address_prefixes_cidr: "10.10.0.0/16"
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- name: Create subnet
|
||||
azure_rm_subnet:
|
||||
name: subnet001
|
||||
resource_group: "{{ resource_group }}"
|
||||
virtual_network_name: vnet001
|
||||
address_prefix_cidr: "10.10.0.0/24"
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- name: Create second virtual network
|
||||
azure_rm_virtualnetwork:
|
||||
name: vnet002
|
||||
resource_group: "{{ resource_group }}"
|
||||
address_prefixes_cidr: "10.20.0.0/16"
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- name: Create second subnet
|
||||
azure_rm_subnet:
|
||||
name: subnet002
|
||||
resource_group: "{{ resource_group }}"
|
||||
virtual_network_name: vnet002
|
||||
address_prefix_cidr: "10.20.0.0/24"
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- name: Create security group
|
||||
azure_rm_securitygroup:
|
||||
name: secgroup001
|
||||
resource_group: "{{ resource_group }}"
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- name: Create second security group
|
||||
azure_rm_securitygroup:
|
||||
name: secgroup002
|
||||
resource_group: "{{ resource_group }}"
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- name: Create a public ip
|
||||
azure_rm_publicipaddress:
|
||||
name: publicip001
|
||||
resource_group: "{{ resource_group }}"
|
||||
allocation_method: "Static"
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- name: Create second public ip
|
||||
azure_rm_publicipaddress:
|
||||
name: publicip002
|
||||
resource_group: "{{ resource_group }}"
|
||||
allocation_method: "Static"
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- name: Delete network interface, if it exists
|
||||
azure_rm_networkinterface:
|
||||
name: nic003
|
||||
resource_group: "{{ resource_group }}"
|
||||
state: absent
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- name: Should require subnet when creating nic
|
||||
azure_rm_networkinterface:
|
||||
name: nic003
|
||||
resource_group: "{{ resource_group }}"
|
||||
virtual_network_name: vnet001
|
||||
security_group_name: secgroup001
|
||||
public_ip_address_name: publicip001
|
||||
register: output
|
||||
ignore_errors: yes
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- output.failed
|
||||
- "'subnet' in output.msg"
|
||||
|
||||
- name: Should require virtual network when creating nic
|
||||
azure_rm_networkinterface:
|
||||
name: nic003
|
||||
resource_group: "{{ resource_group }}"
|
||||
security_group_name: secgroup001
|
||||
public_ip_address_name: publicip001
|
||||
subnet: subnet001
|
||||
register: output
|
||||
ignore_errors: yes
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- output.failed
|
||||
- "'virtual_network_name' in output.msg"
|
||||
|
||||
- name: Create nic
|
||||
azure_rm_networkinterface:
|
||||
name: nic003
|
||||
resource_group: "{{ resource_group }}"
|
||||
virtual_network_name: vnet001
|
||||
subnet: subnet001
|
||||
security_group_name: secgroup001
|
||||
public_ip_address_name: publicip001
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- name: Should be idempotent
|
||||
azure_rm_networkinterface:
|
||||
name: nic003
|
||||
resource_group: "{{ resource_group }}"
|
||||
virtual_network_name: vnet001
|
||||
subnet: subnet001
|
||||
security_group_name: secgroup001
|
||||
public_ip_address_name: publicip001
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that: not output.changed
|
||||
|
||||
- name: Should change private IP address
|
||||
azure_rm_networkinterface:
|
||||
name: nic003
|
||||
resource_group: "{{ resource_group }}"
|
||||
private_ip_address: 10.10.0.10
|
||||
private_ip_allocation_method: Static
|
||||
virtual_network_name: vnet001
|
||||
subnet: subnet001
|
||||
security_group_name: secgroup001
|
||||
public_ip_address_name: publicip001
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- output.changed
|
||||
- output.state.ip_configuration.private_ip_address == '10.10.0.10'
|
||||
- output.state.ip_configuration.private_ip_allocation_method == 'Static'
|
||||
|
||||
- name: Should change virtual network and subnet
|
||||
azure_rm_networkinterface:
|
||||
name: nic003
|
||||
resource_group: "{{ resource_group }}"
|
||||
private_ip_allocation_method: Dynamic
|
||||
virtual_network_name: vnet002
|
||||
subnet: subnet002
|
||||
security_group_name: secgroup002
|
||||
public_ip_address_name: publicip002
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- output.changed
|
||||
- "'10.20' in output.state.ip_configuration.private_ip_address"
|
||||
- output.state.ip_configuration.private_ip_allocation_method == 'Dynamic'
|
||||
- output.state.ip_configuration.subnet.name == 'subnet002'
|
||||
- output.state.ip_configuration.public_ip_address.name == 'publicip002'
|
||||
|
||||
- name: Add tags
|
||||
azure_rm_networkinterface:
|
||||
name: nic003
|
||||
resource_group: "{{ resource_group }}"
|
||||
tags:
|
||||
testing: testing
|
||||
foo: bar
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- output.state.tags | length == 2
|
||||
- output.state.tags.testing == 'testing'
|
||||
|
||||
- name: Gather facts for tags
|
||||
azure_rm_networkinterface_facts:
|
||||
tags: testing
|
||||
register: output
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- azure_networkinterfaces | length >= 1
|
||||
|
||||
- name: Gather facts for resource group and tags
|
||||
azure_rm_networkinterface_facts:
|
||||
resource_group: "{{ resource_group }}"
|
||||
tags: testing
|
||||
register: output
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- azure_networkinterfaces| length == 1
|
||||
|
||||
- name: Gather facts for name and tags
|
||||
azure_rm_networkinterface_facts:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: nic003
|
||||
tags: testing
|
||||
register: output
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- azure_networkinterfaces | length == 1
|
||||
|
||||
- name: Purge one tag
|
||||
azure_rm_networkinterface:
|
||||
name: nic003
|
||||
resource_group: "{{ resource_group }}"
|
||||
tags:
|
||||
testing: testing
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- output.changed
|
||||
- output.state.tags | length == 1
|
||||
|
||||
- name: Purge all tags
|
||||
azure_rm_networkinterface:
|
||||
name: nic003
|
||||
resource_group: "{{ resource_group }}"
|
||||
tags: {}
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- output.changed
|
||||
- output.state.tags | length == 0
|
||||
|
||||
- name: Remove network interface, if it exists
|
||||
azure_rm_networkinterface:
|
||||
name: "{{ item }}"
|
||||
resource_group: "{{ resource_group }}"
|
||||
state: absent
|
||||
register: output
|
||||
with_items:
|
||||
- nic004
|
||||
- nic005
|
||||
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- name: Remove publicip, if it exists
|
||||
azure_rm_publicipaddress:
|
||||
name: "{{ item }}"
|
||||
resource_group: "{{ resource_group }}"
|
||||
state: absent
|
||||
with_items:
|
||||
- nic00401
|
||||
- nic00501
|
||||
|
||||
- name: Remove security group, if it exists
|
||||
azure_rm_securitygroup:
|
||||
name: "{{ item }}"
|
||||
resource_group: "{{ resource_group }}"
|
||||
state: absent
|
||||
with_items:
|
||||
- nic00401
|
||||
- nic00501
|
||||
|
||||
- name: Should create default security group and default public ip for linux host
|
||||
azure_rm_networkinterface:
|
||||
name: nic004
|
||||
resource_group: "{{ resource_group }}"
|
||||
virtual_network_name: vnet001
|
||||
subnet: subnet001
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- output.state.ip_configuration.public_ip_address.name == 'nic00401'
|
||||
- output.state.network_security_group.name == 'nic00401'
|
||||
|
||||
- name: Gather facts for security group nic00401
|
||||
azure_rm_securitygroup_facts:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: nic00401
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- azure_securitygroups[0].properties.securityRules[0].properties.destinationPortRange == '22'
|
||||
|
||||
- name: Should create default security group and default public ip for windows host
|
||||
azure_rm_networkinterface:
|
||||
name: nic005
|
||||
resource_group: "{{ resource_group }}"
|
||||
virtual_network_name: vnet001
|
||||
subnet: subnet001
|
||||
os_type: Windows
|
||||
open_ports:
|
||||
- 9000
|
||||
- '9005-9010'
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- output.state.ip_configuration.public_ip_address.name == 'nic00501'
|
||||
- output.state.network_security_group.name == 'nic00501'
|
||||
|
||||
- name: Gather facts for security group nic00501
|
||||
azure_rm_securitygroup_facts:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: nic00501
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- name: Security group should allow RDP access on custom port
|
||||
assert:
|
||||
that:
|
||||
- azure_securitygroups[0].properties.securityRules[0].properties.destinationPortRange == '9000'
|
||||
- azure_securitygroups[0].properties.securityRules[1].properties.destinationPortRange == '9005-9010'
|
||||
|
||||
- name: Gather facts for one nic
|
||||
azure_rm_networkinterface_facts:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: nic003
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- azure_networkinterfaces | length == 1
|
||||
|
||||
- name: Gather facts for all nics in resource groups
|
||||
azure_rm_networkinterface_facts:
|
||||
resource_group: "{{ resource_group }}"
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- azure_networkinterfaces | length >= 3
|
||||
|
||||
- name: Gather facts for all nics
|
||||
azure_rm_networkinterface_facts:
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- azure_networkinterfaces | length >= 3
|
||||
|
||||
- name: Delete nic
|
||||
azure_rm_networkinterface:
|
||||
name: "{{ item }}"
|
||||
resource_group: "{{ resource_group }}"
|
||||
state: absent
|
||||
register: output
|
||||
with_items:
|
||||
- nic003
|
||||
- nic004
|
||||
- nic005
|
@ -0,0 +1,139 @@
|
||||
- name: Create resource group
|
||||
azure_rm_resourcegroup:
|
||||
name: "{{ resource_group }}"
|
||||
location: "{{ location }}"
|
||||
|
||||
- name: Remove public ip
|
||||
azure_rm_publicipaddress:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: testing01
|
||||
state: absent
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- name: Create public ip
|
||||
azure_rm_publicipaddress:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: testing01
|
||||
allocation_method: Static
|
||||
domain_name: autotest01
|
||||
tags:
|
||||
testing: testing
|
||||
delete: on-exit
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- output.state.public_ip_allocation_method == 'Static'
|
||||
- output.state.dns_settings.domain_name_label == 'autotest01'
|
||||
- output.state.tags | length == 2
|
||||
- output.state.tags.testing == 'testing'
|
||||
|
||||
- name: Should be idempotent
|
||||
azure_rm_publicipaddress:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: testing01
|
||||
allocation_method: Static
|
||||
domain_name: autotest01
|
||||
tags:
|
||||
testing: testing
|
||||
delete: on-exit
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that: not output.changed
|
||||
|
||||
- name: Update tags
|
||||
azure_rm_publicipaddress:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: testing01
|
||||
tags:
|
||||
testing: testing
|
||||
delete: never
|
||||
foo: bar
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- output.state.tags | length == 3
|
||||
- output.state.tags.delete == 'never'
|
||||
|
||||
- name: Gather facts, filtering by tag
|
||||
azure_rm_publicipaddress_facts:
|
||||
resource_group: "{{ resource_group }}"
|
||||
tags:
|
||||
- testing
|
||||
- foo:bar
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that: azure_publicipaddresses | length == 1
|
||||
|
||||
- name: Purge all tags
|
||||
azure_rm_publicipaddress:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: testing01
|
||||
tags: {}
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- output.state.tags | length == 0
|
||||
|
||||
- name: Gather facts for a public ip
|
||||
azure_rm_publicipaddress_facts:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: testing01
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that: azure_publicipaddresses | length == 1
|
||||
|
||||
- name: Gather facts for all public ips
|
||||
azure_rm_publicipaddress_facts:
|
||||
resource_group: "{{ resource_group }}"
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that: azure_publicipaddresses | length > 0
|
||||
|
||||
- name: Remove all public ips
|
||||
azure_rm_publicipaddress:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: "{{ item.name }}"
|
||||
state: absent
|
||||
with_items: "{{ azure_publicipaddresses }}"
|
||||
|
||||
- name: Gather facts for all public ips
|
||||
azure_rm_publicipaddress_facts:
|
||||
resource_group: "{{ resource_group }}"
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that: azure_publicipaddresses | length == 0
|
@ -0,0 +1,171 @@
|
||||
- name: Create resource group
|
||||
azure_rm_resourcegroup:
|
||||
name: "{{ resource_group }}"
|
||||
location: "{{ location }}"
|
||||
tags:
|
||||
testing: testing
|
||||
delete: never
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- output.state.tags.testing == 'testing'
|
||||
- output.state.tags.delete == 'never'
|
||||
- output.state.location == '{{ location }}'
|
||||
|
||||
- name: Should be idempotent
|
||||
azure_rm_resourcegroup:
|
||||
name: Testing
|
||||
location: "{{ location }}"
|
||||
tags:
|
||||
testing: testing
|
||||
delete: never
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that: not output.changed
|
||||
|
||||
- name: Change resource group tags
|
||||
azure_rm_resourcegroup:
|
||||
name: "{{ resource_group }}"
|
||||
tags:
|
||||
testing: 'no'
|
||||
delete: 'on-exit'
|
||||
foo: 'bar'
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- output.state.tags | length == 3
|
||||
- output.state.tags.testing == 'no'
|
||||
- output.state.tags.delete == 'on-exit'
|
||||
- output.state.tags.foo == 'bar'
|
||||
|
||||
- name: Gather facts by tags
|
||||
azure_rm_resourcegroup_facts:
|
||||
tags:
|
||||
- testing
|
||||
- foo:bar
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that: azure_resourcegroups | length == 1
|
||||
|
||||
- name: Purge one tag
|
||||
azure_rm_resourcegroup:
|
||||
name: "{{ resource_group }}"
|
||||
tags:
|
||||
testing: 'no'
|
||||
delete: 'on-exit'
|
||||
debug: yes
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- output.state.tags | length == 2
|
||||
- output.state.tags.testing == 'no'
|
||||
- output.state.tags.delete == 'on-exit'
|
||||
|
||||
- name: Purge no tags
|
||||
azure_rm_resourcegroup:
|
||||
name: "{{ resource_group }}"
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- output.state.tags | length == 2
|
||||
|
||||
- name: Purge all tags
|
||||
azure_rm_resourcegroup:
|
||||
name: "{{ resource_group }}"
|
||||
tags: {}
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- output.state.tags | length == 0
|
||||
|
||||
- name: Add a resource
|
||||
azure_rm_virtualnetwork:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: "virtualnet01"
|
||||
address_prefixes_cidr: '10.1.0.0/16'
|
||||
register: output
|
||||
|
||||
- name: Remove resource group should fail
|
||||
azure_rm_resourcegroup:
|
||||
name: "{{ resource_group }}"
|
||||
state: absent
|
||||
register: output
|
||||
ignore_errors: yes
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- output.failed
|
||||
- "'Resources exist' in output.msg"
|
||||
|
||||
- name: Create a second resource group
|
||||
azure_rm_resourcegroup:
|
||||
name: Testing2
|
||||
location: "{{ location }}"
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- name: Gather facts for a resource group
|
||||
azure_rm_resourcegroup_facts:
|
||||
name: "{{ resource_group }}"
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that: azure_resourcegroups | length == 1
|
||||
|
||||
- name: Gather facts for all resource groups
|
||||
azure_rm_resourcegroup_facts:
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that: azure_resourcegroups | length > 1
|
||||
|
||||
- name: Force remove resource group
|
||||
azure_rm_resourcegroup:
|
||||
name: "{{ resource_group }}"
|
||||
state: absent
|
||||
force: yes
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- name: Remove second resource group
|
||||
azure_rm_resourcegroup:
|
||||
name: Testing2
|
||||
state: absent
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
@ -0,0 +1,172 @@
|
||||
- name: Create resource group
|
||||
azure_rm_resourcegroup:
|
||||
name: "{{ resource_group }}"
|
||||
location: "{{ location }}"
|
||||
|
||||
- name: Create security group
|
||||
azure_rm_securitygroup:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: mysecgroup
|
||||
tags:
|
||||
testing: testing
|
||||
delete: on-exit
|
||||
foo: bar
|
||||
purge_rules: yes
|
||||
rules:
|
||||
- name: DenySSH
|
||||
protocol: Tcp
|
||||
destination_port_range: 22
|
||||
access: Deny
|
||||
priority: 100
|
||||
direction: Inbound
|
||||
- name: 'AllowSSH'
|
||||
protocol: Tcp
|
||||
source_address_prefix: '174.109.158.0/24'
|
||||
destination_port_range: 22
|
||||
access: Allow
|
||||
priority: 101
|
||||
direction: Inbound
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert: { that: "{{ output.state.rules | length }} == 2" }
|
||||
|
||||
- name: Gather facts by tags
|
||||
azure_rm_securitygroup_facts:
|
||||
resource_group: "{{ resource_group }}"
|
||||
tags:
|
||||
- testing
|
||||
- foo:bar
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that: azure_securitygroups | length == 1
|
||||
|
||||
- name: Add/Update rules on existing security group
|
||||
azure_rm_securitygroup:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: mysecgroup
|
||||
rules:
|
||||
- name: DenySSH
|
||||
protocol: Tcp
|
||||
destination_port_range: 22-23
|
||||
access: Deny
|
||||
priority: 100
|
||||
- name: AllowSSHFromHome
|
||||
protocol: Tcp
|
||||
source_address_prefix: '174.109.158.0/24'
|
||||
destination_port_range: 22-23
|
||||
priority: 102
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert: { that: "{{ output.state.rules | length }} == 3" }
|
||||
|
||||
- name: Test idempotence
|
||||
azure_rm_securitygroup:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: mysecgroup
|
||||
rules:
|
||||
- name: DenySSH
|
||||
protocol: Tcp
|
||||
destination_port_range: 22-23
|
||||
access: Deny
|
||||
priority: 100
|
||||
- name: AllowSSHFromHome
|
||||
protocol: Tcp
|
||||
source_address_prefix: '174.109.158.0/24'
|
||||
destination_port_range: 22-23
|
||||
priority: 102
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that: not output.changed
|
||||
|
||||
- name: Update tags
|
||||
azure_rm_securitygroup:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: mysecgroup
|
||||
tags:
|
||||
testing: testing
|
||||
delete: never
|
||||
baz: bar
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- output.state.tags | length == 3
|
||||
- output.state.tags.delete == 'never'
|
||||
|
||||
- name: Purge tags
|
||||
azure_rm_securitygroup:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: mysecgroup
|
||||
tags:
|
||||
testing: testing
|
||||
delete: on-exit
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- output.state.tags | length == 2
|
||||
- output.state.tags.delete == 'on-exit'
|
||||
|
||||
- name: Gather facts for one accounts
|
||||
azure_rm_securitygroup_facts:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: mysecgroup
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- azure_securitygroups | length == 1
|
||||
|
||||
- name: Gather facts for all accounts
|
||||
azure_rm_securitygroup_facts:
|
||||
resource_group: "{{ resource_group }}"
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- azure_securitygroups | length > 0
|
||||
|
||||
- name: Delete all security groups
|
||||
azure_rm_securitygroup:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: "{{ item.name }}"
|
||||
state: absent
|
||||
with_items: "{{ azure_securitygroups }}"
|
||||
|
||||
- name: Should have no security groups remaining
|
||||
azure_rm_securitygroup_facts:
|
||||
resource_group: "{{ resource_group }}"
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- azure_securitygroups | length == 0
|
@ -0,0 +1,159 @@
|
||||
- name: Create resource group
|
||||
azure_rm_resourcegroup:
|
||||
name: "{{ resource_group }}"
|
||||
location: "{{ location }}"
|
||||
|
||||
- name: Test invalid account name
|
||||
azure_rm_storageaccount:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: "invalid_char$"
|
||||
state: present
|
||||
register: invalid_name
|
||||
ignore_errors: yes
|
||||
|
||||
- name: Assert task failed
|
||||
assert: { that: "invalid_name['failed'] == True" }
|
||||
|
||||
- name: Delete storage account
|
||||
azure_rm_storageaccount:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: teststorageacct002
|
||||
state: absent
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- name: Create new storage account
|
||||
azure_rm_storageaccount:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: teststorageacct002
|
||||
account_type: Standard_LRS
|
||||
tags:
|
||||
test: test
|
||||
galaxy: galaxy
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- name: Assert status succeeded and results include an Id value
|
||||
assert:
|
||||
that:
|
||||
- output.changed
|
||||
- output.state.id is defined
|
||||
|
||||
- name: Gather facts by tags
|
||||
azure_rm_storageaccount_facts:
|
||||
resource_group: "{{ resource_group }}"
|
||||
tags:
|
||||
- test
|
||||
- galaxy
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that: azure_storageaccounts | length >= 1
|
||||
|
||||
- name: Change account type
|
||||
azure_rm_storageaccount:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: teststorageacct002
|
||||
account_type: Premium_LRS
|
||||
register: change_account
|
||||
ignore_errors: yes
|
||||
|
||||
- debug: var=change_account
|
||||
when: playbook_debug
|
||||
|
||||
- name: Assert account type change failed
|
||||
assert: { that: "change_account['failed'] == True" }
|
||||
|
||||
- name: Change account type and add custom domain
|
||||
azure_rm_storageaccount:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: teststorageacct002
|
||||
account_type: Standard_GRS
|
||||
custom_domain: { name: ansible.com, use_sub_domain: no }
|
||||
register: change_account
|
||||
ignore_errors: yes
|
||||
|
||||
- name: Debug
|
||||
debug: var=change_account
|
||||
when: playbook_debug
|
||||
|
||||
- name: Assert CNAME failure
|
||||
assert: { that: "'custom domain name could not be verified' in change_account['msg']" }
|
||||
|
||||
- name: Update account tags
|
||||
azure_rm_storageaccount:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: teststorageacct002
|
||||
tags:
|
||||
testing: testing
|
||||
delete: never
|
||||
galaxy: 'no'
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "output.state.tags | length == 3"
|
||||
- "output.state.tags.galaxy == 'no'"
|
||||
|
||||
- name: Update account tags
|
||||
azure_rm_storageaccount:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: teststorageacct002
|
||||
tags:
|
||||
testing: testing
|
||||
delete: never
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "output.state.tags | length == 2"
|
||||
- "output.state.tags.testing == 'testing'"
|
||||
- "output.state.tags.delete == 'never'"
|
||||
|
||||
- name: Gather facts
|
||||
azure_rm_storageaccount_facts:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: teststorageacct002
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "azure_storageaccounts| length == 1"
|
||||
|
||||
- name: Gather facts
|
||||
azure_rm_storageaccount_facts:
|
||||
resource_group: "{{ resource_group }}"
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "azure_storageaccounts | length > 0"
|
||||
|
||||
- name: Delete acccount
|
||||
azure_rm_storageaccount:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: teststorageacct002
|
||||
state: absent
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
Binary file not shown.
After Width: | Height: | Size: 34 KiB |
@ -0,0 +1,145 @@
|
||||
- name: Create resource group
|
||||
azure_rm_resourcegroup:
|
||||
name: "{{ resource_group }}"
|
||||
location: "{{ location }}"
|
||||
|
||||
- name: Create storage account
|
||||
azure_rm_storageaccount:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: testgroup03blobs
|
||||
account_type: Standard_LRS
|
||||
state: present
|
||||
|
||||
- name: Create container
|
||||
azure_rm_storageblob:
|
||||
resource_group: "{{ resource_group }}"
|
||||
account_name: testgroup03blobs
|
||||
container_name: my-blobs
|
||||
register: create_facts
|
||||
|
||||
- debug: var=create_facts
|
||||
when: playbook_debug
|
||||
|
||||
- name: Force upload blob
|
||||
azure_rm_storageblob:
|
||||
resource_group: "{{ resource_group }}"
|
||||
account_name: testgroup03blobs
|
||||
container_name: my-blobs
|
||||
blob: 'Ratings.png'
|
||||
src: './roles/azure_rm_storageblob/files/Ratings.png'
|
||||
content_type: image/png
|
||||
tags:
|
||||
val1: foo
|
||||
val2: bar
|
||||
force: yes
|
||||
register: upload_facts
|
||||
|
||||
- debug: var=upload_facts
|
||||
when: playbook_debug
|
||||
|
||||
- name: Upload blob idempotence
|
||||
azure_rm_storageblob:
|
||||
resource_group: "{{ resource_group }}"
|
||||
account_name: testgroup03blobs
|
||||
container_name: my-blobs
|
||||
blob: 'Ratings.png'
|
||||
src: './roles/azure_rm_storageblob/files/Ratings.png'
|
||||
content_type: image/png
|
||||
tags:
|
||||
val1: foo
|
||||
val2: bar
|
||||
register: upload_facts
|
||||
|
||||
- debug: var=upload_facts
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that: "not upload_facts.changed"
|
||||
|
||||
- name: Download file idempotence
|
||||
azure_rm_storageblob:
|
||||
resource_group: "{{ resource_group }}"
|
||||
account_name: testgroup03blobs
|
||||
container_name: my-blobs
|
||||
blob: 'Ratings.png'
|
||||
dest: './roles/azure_rm_storageblob/files/Ratings.png'
|
||||
register: download_results
|
||||
|
||||
- debug: var=download_results
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that: not download_results.changed
|
||||
|
||||
- file: path="/tmp/Ratings.png" state=absent
|
||||
|
||||
- name: Download file
|
||||
azure_rm_storageblob:
|
||||
resource_group: "{{ resource_group }}"
|
||||
account_name: testgroup03blobs
|
||||
container_name: my-blobs
|
||||
blob: 'Ratings.png'
|
||||
dest: '/tmp/Ratings.png'
|
||||
register: download_results
|
||||
|
||||
- assert:
|
||||
that: "download_results.changed"
|
||||
|
||||
- find: paths='/tmp' patterns="Ratings.png"
|
||||
register: find_results
|
||||
|
||||
- assert: { that: "find_results['matched'] == 1" }
|
||||
|
||||
- name: Do not delete container that has blobs
|
||||
azure_rm_storageblob:
|
||||
resource_group: "{{ resource_group }}"
|
||||
account_name: testgroup03blobs
|
||||
container_name: my-blobs
|
||||
state: absent
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that: "not output.changed"
|
||||
|
||||
- name: Delete blob object
|
||||
azure_rm_storageblob:
|
||||
resource_group: "{{ resource_group }}"
|
||||
account_name: testgroup03blobs
|
||||
container_name: my-blobs
|
||||
blob: "Ratings.png"
|
||||
state: absent
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that: "output.changed"
|
||||
|
||||
- name: Delete container
|
||||
azure_rm_storageblob:
|
||||
resource_group: "{{ resource_group }}"
|
||||
account_name: testgroup03blobs
|
||||
container_name: my-blobs
|
||||
state: absent
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that: "output.changed"
|
||||
|
||||
- name: Delete storage account
|
||||
azure_rm_storageaccount:
|
||||
resource_group: "{{ resource_group }}"
|
||||
location: "{{ location }}"
|
||||
name: testgroup03blobs
|
||||
state: absent
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
@ -0,0 +1,134 @@
|
||||
- name: Create resource group
|
||||
azure_rm_resourcegroup:
|
||||
name: "{{ resource_group }}"
|
||||
location: "{{ location }}"
|
||||
tags:
|
||||
testing: 'subnet'
|
||||
delete: 'on-exit'
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- name: Create virtual network
|
||||
azure_rm_virtualnetwork:
|
||||
name: My_Virtual_Network
|
||||
address_prefixes_cidr:
|
||||
- 10.1.0.0/16
|
||||
- 172.100.0.0/16
|
||||
dns_servers:
|
||||
- 127.0.0.1
|
||||
- 127.0.0.3
|
||||
tags:
|
||||
testing: testing
|
||||
delete: on-exit
|
||||
resource_group: "{{ resource_group }}"
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- name: Remove subnet
|
||||
azure_rm_subnet:
|
||||
state: absent
|
||||
name: foobar
|
||||
virtual_network_name: My_Virtual_Network
|
||||
resource_group: "{{ resource_group }}"
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- name: Catch invalid cidr
|
||||
azure_rm_subnet:
|
||||
name: foobar
|
||||
virtual_network_name: My_Virtual_Network
|
||||
resource_group: "{{ resource_group }}"
|
||||
address_prefix_cidr: "10.1.0/24"
|
||||
register: output
|
||||
ignore_errors: yes
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that: output.failed
|
||||
|
||||
- name: Add the subnet back
|
||||
azure_rm_subnet:
|
||||
name: foobar
|
||||
virtual_network_name: My_Virtual_Network
|
||||
resource_group: "{{ resource_group }}"
|
||||
address_prefix_cidr: "10.1.0.0/24"
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that: output.changed
|
||||
|
||||
- name: Create network security group
|
||||
azure_rm_securitygroup:
|
||||
name: secgroupfoo
|
||||
resource_group: "{{ resource_group }}"
|
||||
tags:
|
||||
testing: testing
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- name: Update the subnet
|
||||
azure_rm_subnet:
|
||||
name: foobar
|
||||
virtual_network_name: My_Virtual_Network
|
||||
resource_group: "{{ resource_group }}"
|
||||
address_prefix_cidr: "10.1.0.0/16"
|
||||
security_group: secgroupfoo
|
||||
tags:
|
||||
testing: testing
|
||||
delete: on-fini
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- name: Should be idempotent
|
||||
azure_rm_subnet:
|
||||
name: foobar
|
||||
virtual_network_name: My_Virtual_Network
|
||||
resource_group: "{{ resource_group }}"
|
||||
address_prefix_cidr: "10.1.0.0/16"
|
||||
security_group: secgroupfoo
|
||||
tags:
|
||||
testing: testing
|
||||
delete: on-fini
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that: not output.changed
|
||||
|
||||
- name: Remove subnet
|
||||
azure_rm_subnet:
|
||||
state: absent
|
||||
name: foobar
|
||||
virtual_network_name: My_Virtual_Network
|
||||
resource_group: "{{ resource_group }}"
|
||||
register: output
|
||||
|
||||
- name: Remove security group
|
||||
azure_rm_securitygroup:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: secgroupfoo
|
||||
state: absent
|
||||
|
||||
- name: Remove virtual network
|
||||
azure_rm_virtualnetwork:
|
||||
name: My_Virtual_Network
|
||||
resource_group: "{{ resource_group }}"
|
||||
state: absent
|
||||
register: output
|
@ -0,0 +1,8 @@
|
||||
ssh_keys:
|
||||
- path: '/home/chouseknecht/.ssh/authorized_keys'
|
||||
key_data: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC1igsIlcmTa/yfsJnTtnrEX7PP/a01gwbXcig6JOKyrUmJB8E6c/wtZwP115VSyDRTO6TEL/sBFUpkSw01zM8ydNATErh8meBlAlbnDq5NLhDXnMizgG0VNn0iLc/WplFTqkefsHXa8NtIxAtyEVIj/fKbK3XfBOdEpE3+MJYNtGlWyaod28W+5qmQPZDQys+YnE4OjSwN7D3g85/7dtLFvDH+lEC4ooJOaxVFr9VSMXUIkaRF6oI+R1Zu803LFSCTb4BfFOYOHPuQ/rEMP0KuUzggvP+TEBY14PEA2FoHOn+oRsT0ZR2+loGRaxSVqCQKaEHbNbkm+6Rllx2NQRO0BJxCSKRU1iifInLPxmSc4gvsHCKMAWy/tGkmKHPWIfN8hvwyDMK5MNBp/SJ1pVx4xuFDQjVWNbll0yk2+72uJgtFHHwEPK9QsOz45gX85vS3yhYCKrscS/W9h2l36SWwQXuGy4fXotE7esPsvNGAzBndHX1O8RMPg47qJXz059RyoGforoa9TnzIs3hIv+ts7ESx3OEq3HNk0FJ+wDka7IM7WQpGrVToJ0vfDy9Q46nw54vv5Zc/u4OZF3F5twHmyf3rLYKXRDuCvZQKT2iWQKVX6j63bq6orA5hwl22zndxWZNtOwtq8Sd0Ns0K/Fo/ggYDDGBtr68DwhA+MrxrHw== chouseknecht@ansible.com"
|
||||
image:
|
||||
offer: CentOS
|
||||
publisher: OpenLogic
|
||||
sku: '7.1'
|
||||
version: latest
|
@ -0,0 +1,2 @@
|
||||
# - include: virtualmachine.yml
|
||||
- include: virtualmachine_with_defaults.yml
|
@ -0,0 +1,170 @@
|
||||
- name: Create resource group
|
||||
azure_rm_resourcegroup:
|
||||
name: Testing
|
||||
location: "{{ location }}"
|
||||
|
||||
- name: Delete virtual machine
|
||||
azure_rm_virtualmachine:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: testvm002
|
||||
state: absent
|
||||
register: output
|
||||
when: remove_vm
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- name: Create storage account
|
||||
azure_rm_storageaccount:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: testingstorageacct001
|
||||
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
|
||||
vm_size: Standard_D1
|
||||
storage_account: testingstorageacct001
|
||||
storage_container: testvm001
|
||||
storage_blob: testvm001.vhd
|
||||
admin_username: adminuser
|
||||
admin_password: Password123!
|
||||
short_hostname: testvm
|
||||
os_type: Linux
|
||||
network_interfaces: testvm001
|
||||
image: "{{ image }}"
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- name: Restart the virtual machine
|
||||
azure_rm_virtualmachine:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: testvm002
|
||||
restarted: yes
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- 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
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- azure_vm.powerstate == 'deallocated'
|
||||
- output.changed
|
||||
|
||||
- name: Start the virtual machine
|
||||
azure_rm_virtualmachine:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: testvm002
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "azure_vm.powerstate in ['starting', 'running']"
|
||||
- output.changed
|
||||
|
||||
- name: Should be idempotent
|
||||
azure_rm_virtualmachine:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: testvm002
|
||||
vm_size: Standard_D1
|
||||
storage_account: testingstorageacct001
|
||||
storage_container: testvm001
|
||||
storage_blob: testvm001.vhd
|
||||
admin_username: adminuser
|
||||
admin_password: Password123!
|
||||
short_hostname: testvm
|
||||
os_type: Linux
|
||||
network_interfaces: testvm001
|
||||
image: "{{ image }}"
|
||||
register: output
|
||||
|
||||
- assert:
|
||||
that: not output.changed
|
||||
|
||||
- name: Delete VM
|
||||
azure_rm_virtualmachine:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: testvm002
|
||||
state: absent
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- name: NIC should be gone
|
||||
azure_rm_networkinterface_facts:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: testvm001
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that: azure_networkinterfaces | length == 0
|
||||
|
||||
- name: PIP should be gone
|
||||
azure_rm_publicipaddress_facts:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: testvm001
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that: azure_publicipaddresses | length == 0
|
@ -0,0 +1,120 @@
|
||||
- name: Create resource group
|
||||
azure_rm_resourcegroup:
|
||||
name: "{{ resource_group }}"
|
||||
location: "{{ location }}"
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- name: Remove VM
|
||||
azure_rm_virtualmachine:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: testvm10
|
||||
state: absent
|
||||
register: output
|
||||
when: remove_vm
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- name: Remove VM
|
||||
azure_rm_virtualmachine:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: testvm20
|
||||
state: absent
|
||||
register: output
|
||||
when: remove_vm
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- name: Create VM with defaults
|
||||
azure_rm_virtualmachine:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: testvm10
|
||||
vm_size: Standard_D1
|
||||
admin_username: chouseknecht
|
||||
admin_password: Password123
|
||||
short_hostname: test10
|
||||
os_type: Linux
|
||||
open_ports:
|
||||
- "22-23"
|
||||
image: "{{ image }}"
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- name: Add host
|
||||
add_host:
|
||||
groups: just_created
|
||||
hostname: testvm10
|
||||
ansible_host: "{{ azure_vm.properties.networkProfile.networkInterfaces[0].properties.ipConfigurations[0].properties.publicIPAddress.properties.ipAddress }}"
|
||||
ansible_user: chouseknecht
|
||||
ansible_ssh_pass: Password123
|
||||
|
||||
- name: Create VM accessible via ssh keys only
|
||||
azure_rm_virtualmachine:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: testvm20
|
||||
short_hostname: testvm20
|
||||
ssh_password_enabled: false
|
||||
ssh_public_keys: "{{ ssh_keys }}"
|
||||
vm_size: Standard_D1
|
||||
admin_username: chouseknecht
|
||||
image: "{{ image }}"
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- name: Should be idempotent
|
||||
azure_rm_virtualmachine:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: testvm20
|
||||
short_hostname: testvm20
|
||||
ssh_password_enabled: false
|
||||
ssh_public_keys: "{{ ssh_keys }}"
|
||||
vm_size: Standard_D1
|
||||
admin_username: chouseknecht
|
||||
image: "{{ image }}"
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that: not output.changed
|
||||
|
||||
- name: Add host
|
||||
add_host:
|
||||
groups: just_created
|
||||
hostname: testvm20
|
||||
ansible_ssh_host: "{{ azure_vm.properties.networkProfile.networkInterfaces[0].properties.ipConfigurations[0].properties.publicIPAddress.properties.ipAddress }}"
|
||||
ansible_ssh_user: chouseknecht
|
||||
|
||||
- name: Power Off
|
||||
azure_rm_virtualmachine:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: testvm10
|
||||
started: no
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that: "azure_vm.powerstate not in ['starting', 'running']"
|
||||
|
||||
- name: Power On
|
||||
azure_rm_virtualmachine:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: testvm10
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that: "azure_vm.powerstate in ['starting', 'running']"
|
@ -0,0 +1,52 @@
|
||||
- name: Get facts for a specific image
|
||||
azure_rm_virtualmachineimage_facts:
|
||||
location: "{{ location }}"
|
||||
publisher: OpenLogic
|
||||
offer: CentOS
|
||||
sku: '7.1'
|
||||
version: '7.1.20150731'
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that: azure_vmimages | length == 1
|
||||
|
||||
- name: List available versions
|
||||
azure_rm_virtualmachineimage_facts:
|
||||
location: "{{ location }}"
|
||||
publisher: OpenLogic
|
||||
offer: CentOS
|
||||
sku: '7.1'
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that: azure_vmimages | length > 0
|
||||
|
||||
- name: List available offers
|
||||
azure_rm_virtualmachineimage_facts:
|
||||
location: "{{ location }}"
|
||||
publisher: OpenLogic
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that: azure_vmimages | length > 0
|
||||
|
||||
|
||||
- name: List available publishers
|
||||
azure_rm_virtualmachineimage_facts:
|
||||
location: "{{ location }}"
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that: azure_vmimages | length > 0
|
@ -0,0 +1,196 @@
|
||||
- name: Create resource group
|
||||
azure_rm_resourcegroup:
|
||||
name: "{{ resource_group }}"
|
||||
location: westus
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- name: Delete virtual network, if it exists
|
||||
azure_rm_virtualnetwork:
|
||||
name: my_test_network
|
||||
resource_group: "{{ resource_group }}"
|
||||
state: absent
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- name: Create virtual network
|
||||
azure_rm_virtualnetwork:
|
||||
name: my_test_network
|
||||
address_prefixes_cidr:
|
||||
- 10.1.0.0/16
|
||||
- 172.100.0.0/16
|
||||
dns_servers:
|
||||
- 127.0.0.1
|
||||
- 127.0.0.3
|
||||
tags:
|
||||
testing: testing
|
||||
delete: on-exit
|
||||
resource_group: "{{ resource_group }}"
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "output.state.address_prefixes | length == 2"
|
||||
- "output.state.dns_servers | length == 2"
|
||||
- "output.state.tags.delete == 'on-exit'"
|
||||
- "output.state.tags | length == 2"
|
||||
|
||||
- name: Gather facts by name, tags
|
||||
azure_rm_virtualnetwork_facts:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: my_test_network
|
||||
tags:
|
||||
- testing
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that: "azure_virtualnetworks | length == 1"
|
||||
|
||||
- name: Gather facts by resource group, tags
|
||||
azure_rm_virtualnetwork_facts:
|
||||
resource_group: "{{ resource_group }}"
|
||||
tags:
|
||||
- testing
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that: "azure_virtualnetworks | length == 1"
|
||||
|
||||
- name: Gather facts by tags
|
||||
azure_rm_virtualnetwork_facts:
|
||||
tags:
|
||||
- testing
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that: "azure_virtualnetworks | length >= 1"
|
||||
|
||||
- name: Should be idempotent
|
||||
azure_rm_virtualnetwork:
|
||||
name: my_test_network
|
||||
address_prefixes_cidr:
|
||||
- 10.1.0.0/16
|
||||
- 172.100.0.0/16
|
||||
dns_servers:
|
||||
- 127.0.0.1
|
||||
- 127.0.0.3
|
||||
tags:
|
||||
testing: testing
|
||||
delete: on-exit
|
||||
resource_group: "{{ resource_group }}"
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that: not output.changed
|
||||
|
||||
- name: Update tags
|
||||
azure_rm_virtualnetwork:
|
||||
name: my_test_network
|
||||
tags:
|
||||
testing: 'no'
|
||||
delete: never
|
||||
foo: bar
|
||||
resource_group: "{{ resource_group }}"
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that: output.state.tags | length == 3
|
||||
|
||||
- name: Purge tags
|
||||
azure_rm_virtualnetwork:
|
||||
name: my_test_network
|
||||
tags:
|
||||
testing: 'always'
|
||||
resource_group: "{{ resource_group }}"
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- output.state.tags | length == 1
|
||||
- output.state.tags.testing == 'always'
|
||||
|
||||
- name: Should require address_prefixes_cidr when purge_address_prefixes
|
||||
azure_rm_virtualnetwork:
|
||||
name: my_test_network
|
||||
purge_address_prefixes: true
|
||||
resource_group: "{{ resource_group }}"
|
||||
register: output
|
||||
ignore_errors: yes
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that: output.failed
|
||||
|
||||
- name: Purge address prefixes
|
||||
azure_rm_virtualnetwork:
|
||||
name: my_test_network
|
||||
address_prefixes_cidr: 10.1.0.0/16
|
||||
purge_address_prefixes: true
|
||||
resource_group: "{{ resource_group }}"
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- output.state.address_prefixes | length == 1
|
||||
- output.state.address_prefixes[0] == '10.1.0.0/16'
|
||||
- output.state.dns_servers | length == 2
|
||||
- output.state.dns_servers[0] == '127.0.0.1'
|
||||
|
||||
- name: Purge DNS servers
|
||||
azure_rm_virtualnetwork:
|
||||
name: my_test_network
|
||||
purge_dns_servers: true
|
||||
resource_group: "{{ resource_group }}"
|
||||
register: output
|
||||
|
||||
- debug: var=output
|
||||
when: playbook_debug
|
||||
|
||||
- assert:
|
||||
that: output.state['dns_servers'] is undefined
|
||||
|
||||
- name: Gather facts
|
||||
azure_rm_virtualnetwork_facts:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: my_test_network
|
||||
register: output
|
||||
|
||||
- assert:
|
||||
that: "azure_virtualnetworks | length == 1"
|
||||
|
||||
- name: Delete virtual network
|
||||
azure_rm_virtualnetwork:
|
||||
name: my_test_network
|
||||
resource_group: "{{ resource_group }}"
|
||||
state: absent
|
||||
register: output
|
Loading…
Reference in New Issue