Files
valid.nsupdate_zone/docs/nsupdate_zone_example.yml
Daniel Akulenok 0142f806c9 First commit
2026-01-29 11:05:17 +01:00

129 lines
3.3 KiB
YAML

---
# Example playbook demonstrating nsupdate_zone module usage
- name: Manage DNS zones with nsupdate_zone
hosts: localhost
gather_facts: false
vars:
# TSIG authentication
dns_key_name: "nsupdate"
dns_key_secret: "+bFQtBCta7j2vWkjPkAFtgA=="
# Example zone records
example_com_records:
# Zone apex records
- record: 'example.com.'
type: A
value: 192.168.1.1
ttl: 3600
- record: 'example.com.'
type: MX
value:
- "10 mail1.example.com."
- "20 mail2.example.com."
- record: 'example.com.'
type: TXT
value:
- "v=spf1 mx a include:_spf.google.com ~all"
- "google-site-verification=abc123"
# Subdomains
- record: www
type: A
value:
- 192.168.1.10
- 192.168.1.11
ttl: 300
- record: blog
type: CNAME
value: www.example.com.
- record: mail1
type: A
value: 192.168.1.20
- record: mail2
type: A
value: 192.168.1.21
# Wildcard
- record: '*'
type: A
value: 192.168.1.100
# Remove old record
- record: old-server
type: A
value: 192.168.1.99
state: absent
tasks:
- name: Manage example.com zone
valid.nsupdate_zone.nsupdate_zone:
key_name: "{{ dns_key_name }}"
key_secret: "{{ dns_key_secret }}"
protocol: tcp
ignore_record_types:
- NS
- SOA
ignore_record_patterns:
- '^_acme-challenge\..*'
- '^_dnsauth\..*'
zones:
- name: example.com
dns_server: ns1.example.com
records: "{{ example_com_records }}"
register: result
- name: Display results
debug:
var: result
- name: Show changes made
debug:
msg: |
Zone: {{ item.zone }}
Changed: {{ item.changed }}
Adds: {{ item.changes.adds }}
Deletes: {{ item.changes.deletes }}
Updates: {{ item.changes.updates }}
loop: "{{ result.results }}"
when: result.results is defined
# Example: Manage multiple zones in parallel
- name: Manage multiple zones concurrently
valid.nsupdate_zone.nsupdate_zone:
key_name: "{{ dns_key_name }}"
key_secret: "{{ dns_key_secret }}"
parallel_zones: true
zones:
- name: example.com
dns_server: ns1.example.com
records:
- record: 'example.com.'
type: A
value: 192.168.1.1
- name: example.org
dns_server: ns1.example.com
records:
- record: 'example.org.'
type: A
value: 192.168.2.1
- name: example.net
dns_server: ns1.example.com
records:
- record: 'example.net.'
type: A
value: 192.168.3.1
register: multi_zone_result
- name: Show multi-zone results
debug:
msg: "Processed {{ multi_zone_result.results | length }} zones, {{ multi_zone_result.results | selectattr('changed', 'equalto', true) | list | length }} changed"