290 lines
7.1 KiB
YAML
290 lines
7.1 KiB
YAML
|
- name: Prepare random number
|
||
|
set_fact:
|
||
|
tmname: "tm{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
|
||
|
endpointname1: "ep1{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
|
||
|
endpointname2: "ep2{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
|
||
|
run_once: yes
|
||
|
|
||
|
|
||
|
- name: Create a Traffic Manager profile(check mode)
|
||
|
azure_rm_trafficmanagerprofile:
|
||
|
resource_group: "{{ resource_group }}"
|
||
|
name: "{{ tmname }}"
|
||
|
tags:
|
||
|
testing: testing
|
||
|
delete: on-exit
|
||
|
foo: bar
|
||
|
location: global
|
||
|
profile_status: enabled
|
||
|
routing_method: performance
|
||
|
dns_config:
|
||
|
relative_name: "{{ tmname }}"
|
||
|
ttl: 60
|
||
|
monitor_config:
|
||
|
protocol: HTTPS
|
||
|
port: 80
|
||
|
path: '/'
|
||
|
check_mode: yes
|
||
|
|
||
|
- name: Check there is no Traffic Manager profile created
|
||
|
azure_rm_trafficmanagerprofile_facts:
|
||
|
resource_group: "{{ resource_group }}"
|
||
|
name: "{{ tmname }}"
|
||
|
register: fact
|
||
|
|
||
|
- name: Check there is no Traffic Manager profile created
|
||
|
assert: { that: "{{ fact.tms | length }} == 0" }
|
||
|
|
||
|
- name: Create a Traffic Manager profile
|
||
|
azure_rm_trafficmanagerprofile:
|
||
|
resource_group: "{{ resource_group }}"
|
||
|
name: "{{ tmname }}"
|
||
|
tags:
|
||
|
testing: testing
|
||
|
delete: on-exit
|
||
|
foo: bar
|
||
|
location: global
|
||
|
profile_status: enabled
|
||
|
routing_method: performance
|
||
|
dns_config:
|
||
|
relative_name: "{{ tmname }}"
|
||
|
ttl: 60
|
||
|
monitor_config:
|
||
|
protocol: HTTPS
|
||
|
port: 80
|
||
|
path: '/'
|
||
|
register: tm
|
||
|
|
||
|
- name: Assert the Traffic Manager profile is well created
|
||
|
assert:
|
||
|
that:
|
||
|
- tm.changed
|
||
|
|
||
|
- name: Gather Traffic Manager profile facts
|
||
|
azure_rm_trafficmanagerprofile_facts:
|
||
|
resource_group: "{{ resource_group }}"
|
||
|
name: "{{ tmname }}"
|
||
|
register: fact
|
||
|
|
||
|
- name: Assert fact returns the created one
|
||
|
assert:
|
||
|
that:
|
||
|
- "fact.tms | length == 1"
|
||
|
- fact.tms[0].id == tm.id
|
||
|
- fact.tms[0].endpoints | length == 0
|
||
|
|
||
|
- name: Create a Traffic Manager profile (idempotent)
|
||
|
azure_rm_trafficmanagerprofile:
|
||
|
resource_group: "{{ resource_group }}"
|
||
|
name: "{{ tmname }}"
|
||
|
tags:
|
||
|
testing: testing
|
||
|
delete: on-exit
|
||
|
foo: bar
|
||
|
location: global
|
||
|
profile_status: enabled
|
||
|
routing_method: performance
|
||
|
dns_config:
|
||
|
relative_name: "{{ tmname }}"
|
||
|
ttl: 60
|
||
|
monitor_config:
|
||
|
protocol: HTTPS
|
||
|
port: 80
|
||
|
path: '/'
|
||
|
register: output
|
||
|
|
||
|
- name: Assert idempotent
|
||
|
assert:
|
||
|
that:
|
||
|
- not output.changed
|
||
|
|
||
|
- name: Update the Traffic Manager profile
|
||
|
azure_rm_trafficmanagerprofile:
|
||
|
resource_group: "{{ resource_group }}"
|
||
|
name: "{{ tmname }}"
|
||
|
tags:
|
||
|
testing: testing
|
||
|
delete: on-exit
|
||
|
foo: bar
|
||
|
location: global
|
||
|
profile_status: disabled
|
||
|
routing_method: priority
|
||
|
dns_config:
|
||
|
relative_name: "{{ tmname }}"
|
||
|
ttl: 60
|
||
|
monitor_config:
|
||
|
protocol: HTTPS
|
||
|
port: 80
|
||
|
path: '/'
|
||
|
register: output
|
||
|
|
||
|
- name: Assert the Traffic Manager profile is updated
|
||
|
assert:
|
||
|
that:
|
||
|
- output.changed
|
||
|
|
||
|
- name: Create Traffic Manager endpoint(check mode)
|
||
|
azure_rm_trafficmanagerendpoint:
|
||
|
resource_group: "{{ resource_group }}"
|
||
|
profile_name: "{{ tmname }}"
|
||
|
name: "{{ endpointname1 }}"
|
||
|
type: external_endpoints
|
||
|
location: westus
|
||
|
priority: 2
|
||
|
weight: 1
|
||
|
target: 1.2.3.4
|
||
|
check_mode: yes
|
||
|
register: output
|
||
|
|
||
|
- name: Assert check mode changed
|
||
|
assert:
|
||
|
that:
|
||
|
- output.changed
|
||
|
|
||
|
- name: Get endpoint
|
||
|
azure_rm_trafficmanagerendpoint_facts:
|
||
|
resource_group: "{{ resource_group }}"
|
||
|
profile_name: "{{ tmname }}"
|
||
|
register: facts
|
||
|
|
||
|
- name: Check no endpoint created in check mode
|
||
|
assert:
|
||
|
that:
|
||
|
- facts.endpoints | length == 0
|
||
|
|
||
|
- name: Create Traffic Manager endpoint
|
||
|
azure_rm_trafficmanagerendpoint:
|
||
|
resource_group: "{{ resource_group }}"
|
||
|
profile_name: "{{ tmname }}"
|
||
|
name: "{{ endpointname1 }}"
|
||
|
type: external_endpoints
|
||
|
location: westus
|
||
|
priority: 2
|
||
|
weight: 1
|
||
|
target: 1.2.3.4
|
||
|
register: output
|
||
|
|
||
|
- name: Assert endpoint create changed
|
||
|
assert:
|
||
|
that:
|
||
|
- output.changed
|
||
|
|
||
|
- name: Get endpoint
|
||
|
azure_rm_trafficmanagerendpoint_facts:
|
||
|
resource_group: "{{ resource_group }}"
|
||
|
profile_name: "{{ tmname }}"
|
||
|
register: facts
|
||
|
|
||
|
- name: Check endpoint created
|
||
|
assert:
|
||
|
that:
|
||
|
- facts.endpoints | length == 1
|
||
|
- facts.endpoints[0].name == "{{ endpointname1 }}"
|
||
|
|
||
|
- name: Create second Traffic Manager endpoint
|
||
|
azure_rm_trafficmanagerendpoint:
|
||
|
resource_group: "{{ resource_group }}"
|
||
|
profile_name: "{{ tmname }}"
|
||
|
name: "{{ endpointname2 }}"
|
||
|
type: external_endpoints
|
||
|
location: westus
|
||
|
priority: 1
|
||
|
weight: 3
|
||
|
target: 4.3.2.1
|
||
|
|
||
|
- name: Get endpoint
|
||
|
azure_rm_trafficmanagerendpoint_facts:
|
||
|
resource_group: "{{ resource_group }}"
|
||
|
profile_name: "{{ tmname }}"
|
||
|
register: facts
|
||
|
|
||
|
- name: Check 2 endpoint in profile
|
||
|
assert:
|
||
|
that:
|
||
|
- facts.endpoints | length == 2
|
||
|
|
||
|
- name: Create endpoint (idempotent)
|
||
|
azure_rm_trafficmanagerendpoint:
|
||
|
resource_group: "{{ resource_group }}"
|
||
|
profile_name: "{{ tmname }}"
|
||
|
name: "{{ endpointname2 }}"
|
||
|
type: external_endpoints
|
||
|
location: westus
|
||
|
priority: 1
|
||
|
weight: 3
|
||
|
target: 4.3.2.1
|
||
|
register: output
|
||
|
|
||
|
- name: Assert endpoint creation idempotent
|
||
|
assert:
|
||
|
that:
|
||
|
- output.changed == False
|
||
|
|
||
|
- name: Delete second endpoint
|
||
|
azure_rm_trafficmanagerendpoint:
|
||
|
resource_group: "{{ resource_group }}"
|
||
|
profile_name: "{{ tmname }}"
|
||
|
name: "{{ endpointname2 }}"
|
||
|
type: external_endpoints
|
||
|
state: absent
|
||
|
register: output
|
||
|
|
||
|
- name: Assert endpoint deletion changed
|
||
|
assert:
|
||
|
that:
|
||
|
- output.changed
|
||
|
|
||
|
- name: Get endpoint
|
||
|
azure_rm_trafficmanagerendpoint_facts:
|
||
|
resource_group: "{{ resource_group }}"
|
||
|
profile_name: "{{ tmname }}"
|
||
|
register: facts
|
||
|
|
||
|
- name: Check 1 endpoint left in profile
|
||
|
assert:
|
||
|
that:
|
||
|
- facts.endpoints | length == 1
|
||
|
|
||
|
- name: Delete the Traffic Manager profile(check mode)
|
||
|
azure_rm_trafficmanagerprofile:
|
||
|
resource_group: "{{ resource_group }}"
|
||
|
name: "{{ tmname }}"
|
||
|
state: absent
|
||
|
check_mode: yes
|
||
|
|
||
|
- name: Gather Traffic Manager profile facts
|
||
|
azure_rm_trafficmanagerprofile_facts:
|
||
|
resource_group: "{{ resource_group }}"
|
||
|
name: "{{ tmname }}"
|
||
|
register: fact
|
||
|
|
||
|
- name: Assert the traffic manager profile is still there
|
||
|
assert:
|
||
|
that:
|
||
|
- "fact.tms | length == 1"
|
||
|
- fact.tms[0].id == tm.id
|
||
|
- fact.tms[0].endpoints | length == 1
|
||
|
|
||
|
- name: Delete the Traffic Manager profile
|
||
|
azure_rm_trafficmanagerprofile:
|
||
|
resource_group: "{{ resource_group }}"
|
||
|
name: "{{ tmname }}"
|
||
|
state: absent
|
||
|
register: output
|
||
|
|
||
|
- name: Assert the Traffic Manager profile is well deleted
|
||
|
assert:
|
||
|
that:
|
||
|
- output.changed
|
||
|
|
||
|
- name: Get Traffic Manager profile fact
|
||
|
azure_rm_trafficmanagerprofile_facts:
|
||
|
resource_group: "{{ resource_group }}"
|
||
|
name: "{{ tmname }}"
|
||
|
register: fact
|
||
|
|
||
|
- name: Assert fact returns empty
|
||
|
assert:
|
||
|
that:
|
||
|
- "fact.tms | length == 0"
|