mirror of
https://github.com/ansible-collections/community.general.git
synced 2026-05-02 19:32:47 +00:00
dns zone enhancement and return curated value (#50740)
This commit is contained in:
@@ -2,11 +2,20 @@
|
||||
set_fact:
|
||||
domain_name: "{{ resource_group | hash('md5') | truncate(16, True, '') + (65535 | random | string) }}"
|
||||
|
||||
- name: Create a DNS zone (check mode)
|
||||
azure_rm_dnszone:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: "{{ domain_name }}.com"
|
||||
register: results
|
||||
check_mode: yes
|
||||
|
||||
- assert:
|
||||
that: results.changed
|
||||
|
||||
- name: Create a DNS zone
|
||||
azure_rm_dnszone:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: "{{ domain_name }}.com"
|
||||
state: present
|
||||
register: results
|
||||
|
||||
- assert:
|
||||
@@ -16,7 +25,6 @@
|
||||
azure_rm_dnszone:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: "{{ domain_name }}.com"
|
||||
state: present
|
||||
tags:
|
||||
test: modified
|
||||
register: results
|
||||
@@ -26,33 +34,79 @@
|
||||
- results.changed
|
||||
- results.state.tags.test == 'modified'
|
||||
|
||||
- name: Test check_mode
|
||||
azure_rm_dnszone:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: "{{ domain_name }}.com"
|
||||
state: present
|
||||
tags:
|
||||
test: new_modified
|
||||
check_mode: yes
|
||||
register: results
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- results.changed
|
||||
- results.state.tags.test == 'new_modified'
|
||||
- results.check_mode == true
|
||||
|
||||
- name: Retrieve DNS Zone Facts
|
||||
azure_rm_dnszone_facts:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: "{{ domain_name }}.com"
|
||||
register: results
|
||||
register: zones
|
||||
|
||||
- name: Assert that facts module returned result
|
||||
assert:
|
||||
that:
|
||||
- not results.changed
|
||||
- results.ansible_facts.azure_dnszones[0].tags.test == 'modified'
|
||||
- azure_dnszones[0].tags.test == 'modified'
|
||||
- zones.dnszones[0].type == 'public'
|
||||
|
||||
- name: Create virtual network
|
||||
azure_rm_virtualnetwork:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: "{{ item }}"
|
||||
address_prefixes_cidr:
|
||||
- 10.1.0.0/16
|
||||
- 172.100.0.0/16
|
||||
with_items:
|
||||
- "{{ domain_name }}registration1"
|
||||
- "{{ domain_name }}resolution1"
|
||||
- "{{ domain_name }}registration2"
|
||||
- "{{ domain_name }}resolution2"
|
||||
|
||||
- name: Create private dns zone
|
||||
azure_rm_dnszone:
|
||||
name: "{{ domain_name }}.private"
|
||||
resource_group: "{{ resource_group }}"
|
||||
type: private
|
||||
registration_virtual_networks:
|
||||
- name: "{{ domain_name }}registration1"
|
||||
resolution_virtual_networks:
|
||||
- name: "{{ domain_name }}resolution1"
|
||||
- name: "{{ domain_name }}resolution2"
|
||||
register: results
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "results.state.registration_virtual_networks | length == 1"
|
||||
- "results.state.resolution_virtual_networks | length == 2"
|
||||
- results.state.type == 'private'
|
||||
|
||||
- name: Update private dns zone
|
||||
azure_rm_dnszone:
|
||||
name: "{{ domain_name }}.private"
|
||||
resource_group: "{{ resource_group }}"
|
||||
type: private
|
||||
registration_virtual_networks:
|
||||
- name: "{{ domain_name }}registration1"
|
||||
resolution_virtual_networks:
|
||||
- name: "{{ domain_name }}resolution1"
|
||||
register: results
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "results.state.registration_virtual_networks | length == 1"
|
||||
- "results.state.resolution_virtual_networks | length == 1"
|
||||
- results.state.type == 'private'
|
||||
|
||||
- name: Test idempotent
|
||||
azure_rm_dnszone:
|
||||
name: "{{ item }}"
|
||||
resource_group: "{{ resource_group }}"
|
||||
with_items:
|
||||
- "{{ domain_name }}.com"
|
||||
- "{{ domain_name }}.private"
|
||||
register: results
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "not {{ item.changed }}"
|
||||
with_items: "{{ results.results }}"
|
||||
|
||||
#
|
||||
# azure_rm_dnsrecordset test
|
||||
@@ -72,7 +126,9 @@
|
||||
|
||||
- name: Assert that A record set was created
|
||||
assert:
|
||||
that: results.changed
|
||||
that:
|
||||
- results.changed
|
||||
- 'results.state.arecords | length == 3'
|
||||
|
||||
- name: re-run "A" record with same values
|
||||
azure_rm_dnsrecordset:
|
||||
@@ -105,6 +161,7 @@
|
||||
assert:
|
||||
that:
|
||||
- results.changed
|
||||
- 'results.state.arecords | length == 4'
|
||||
|
||||
- name: re-update "A" record set with additional record
|
||||
azure_rm_dnsrecordset:
|
||||
@@ -138,6 +195,7 @@
|
||||
assert:
|
||||
that:
|
||||
- results.changed
|
||||
- 'results.state.arecords | length == 3'
|
||||
|
||||
- name: Check_mode test
|
||||
azure_rm_dnsrecordset:
|
||||
@@ -213,38 +271,56 @@
|
||||
assert:
|
||||
that:
|
||||
- not results.changed
|
||||
- results.ansible_facts.azure_dnsrecordset[0].name == 'www'
|
||||
- azure_dnsrecordset[0].name == 'www'
|
||||
- results.dnsrecordsets[0].relative_name == 'www'
|
||||
- 'results.dnsrecordsets[0].records | length == 3'
|
||||
- results.dnsrecordsets[0].record_type == 'A'
|
||||
|
||||
- name: Retrieve DNS Record Set Facts for all Record Sets
|
||||
azure_rm_dnsrecordset_facts:
|
||||
resource_group: "{{ resource_group }}"
|
||||
zone_name: "{{ domain_name }}.com"
|
||||
register: results
|
||||
register: facts
|
||||
|
||||
- name: Assert that facts module returned result for all Record Sets
|
||||
assert:
|
||||
that:
|
||||
- not results.changed
|
||||
- results.ansible_facts.azure_dnsrecordset[0].name == '@'
|
||||
- results.ansible_facts.azure_dnsrecordset[1].name == '@'
|
||||
- results.ansible_facts.azure_dnsrecordset[4].name == 'www'
|
||||
- not facts.changed
|
||||
- facts.ansible_facts.azure_dnsrecordset[0].name == '@'
|
||||
- facts.ansible_facts.azure_dnsrecordset[1].name == '@'
|
||||
- facts.ansible_facts.azure_dnsrecordset[4].name == 'www'
|
||||
|
||||
#
|
||||
# azure_rm_dnsrecordset cleanup
|
||||
#
|
||||
- name: delete a record set
|
||||
- name: delete all record sets except for @
|
||||
azure_rm_dnsrecordset:
|
||||
resource_group: "{{ resource_group }}"
|
||||
relative_name: www
|
||||
relative_name: "{{ item.relative_name }}"
|
||||
zone_name: "{{ domain_name }}.com"
|
||||
record_type: A
|
||||
record_type: "{{ item.record_type }}"
|
||||
state: absent
|
||||
with_items: "{{ facts.dnsrecordsets }}"
|
||||
when:
|
||||
- item.relative_name != '@'
|
||||
register: results
|
||||
|
||||
- name: Assert that record set deleted
|
||||
assert:
|
||||
that: results.changed
|
||||
|
||||
- name: Retrieve DNS Record Set Facts for all Record Sets
|
||||
azure_rm_dnsrecordset_facts:
|
||||
resource_group: "{{ resource_group }}"
|
||||
zone_name: "{{ domain_name }}.com"
|
||||
register: facts
|
||||
|
||||
- name: Assert all record set deleted
|
||||
assert:
|
||||
that:
|
||||
- item.relative_name == '@'
|
||||
with_items: "{{ facts.dnsrecordsets }}"
|
||||
|
||||
- name: (idempotence test) re-run record set absent
|
||||
azure_rm_dnsrecordset:
|
||||
resource_group: "{{ resource_group }}"
|
||||
@@ -262,7 +338,20 @@
|
||||
# azure_rm_dnszone cleanup
|
||||
#
|
||||
- name: Delete DNS zone
|
||||
azure_rm_dnszone:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: "{{ item }}"
|
||||
state: absent
|
||||
with_items:
|
||||
- "{{ domain_name }}.com"
|
||||
- "{{ domain_name }}.private"
|
||||
|
||||
- name: Delete DNS zone (idempotent)
|
||||
azure_rm_dnszone:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: "{{ domain_name }}.com"
|
||||
state: absent
|
||||
register: results
|
||||
|
||||
- assert:
|
||||
that: not results.changed
|
||||
@@ -9,7 +9,7 @@ azure-mgmt-compute==4.3.1
|
||||
azure-mgmt-containerinstance==0.4.0
|
||||
azure-mgmt-containerregistry==2.0.0
|
||||
azure-mgmt-containerservice==4.2.2
|
||||
azure-mgmt-dns==1.2.0
|
||||
azure-mgmt-dns==2.1.0
|
||||
azure-mgmt-keyvault==0.40.0
|
||||
azure-mgmt-marketplaceordering==0.1.0
|
||||
azure-mgmt-monitor==0.5.2
|
||||
|
||||
Reference in New Issue
Block a user