IMPORTANT NOTE
As i'm not using PowerDNS anymore i will not activly work on the library. Only merging your PR's. If anyone wants to add the library to the official Ansible module library feel free to do so. Just please add a note about me as the original author and a link to this repo :-)
Ensure zone is present
- powerdns_zone:
name: zone01.internal.example.com.
nameservers:
- ns-01.example.com.
- ns-02.example.com.
kind: master
state: present
pdns_host: powerdns.example.com
pdns_port: 8081
pdns_api_key: topsecretEnsure zone is absent
- powerdns_zone:
name: zone02.internal.example.com
state: absent
pdns_host: powerdns.example.com
pdns_port: 8081
pdns_api_key: topsecretEnsure A record
- powerdns_record:
name: host01.zone01.internal.example.com.
zone: zone01.internal.example.com
type: A
content: 192.168.1.234
ttl: 1440
pdns_host: powerdns.example.com
pdns_port: 443
pdns_api_key: topsecret
pdns_prot: httpsAbsent all A record: this will delete all A record, even you specified ip in content
- powerdns_record:
name: host01.zone01.internal.example.com.
state: absent
zone: zone01.internal.example.com
type: A
content: 192.168.1.234
ttl: 1440
pdns_host: powerdns.example.com
pdns_port: 443
pdns_api_key: topsecret
pdns_prot: httpsAbsent particular A record: this will remove only one A record for specific ip
- powerdns_record:
name: host01.zone01.internal.example.com.
state: absent
exclusive: false
zone: zone01.internal.example.com
type: A
content: 192.168.1.234
ttl: 1440
pdns_host: powerdns.example.com
pdns_port: 443
pdns_api_key: topsecret
pdns_prot: httpsEnsure AAAA record
- powerdns_record:
name: host01.zone01.internal.example.com.
zone: zone01.internal.example.com
type: AAAA
content: 2001:cdba:0000:0000:0000:0000:3257:9652
ttl: 1440
pdns_host: powerdns.example.com
pdns_port: 8443
pdns_api_key: topsecret
pdns_prot: httpsDo not verify SSL certificate (this is a security risk)
- powerdns_record:
name: host01.zone01.internal.example.com.
zone: zone01.internal.example.com
type: AAAA
content: 2001:cdba:0000:0000:0000:0000:3257:9652
ttl: 1440
pdns_host: powerdns.example.com
pdns_port: 8443
pdns_api_key: topsecret
pdns_prot: https
strict_ssl_checking: falseEnsure CNAME record
- powerdns_record:
name: database.zone01.internal.example.com.
zone: zone01.internal.example.com
type: CNAME
content: host01.zone01.internal.example.com
pdns_host: powerdns.example.com
pdns_port: 80
pdns_api_key: topsecret
pdns_prot: httpEnsure multiple MX records
- powerdns_record:
name: zone01.internal.example.com.
zone: zone01.internal.example.com
type: MX
content:
- 10 mx1.zone01.internal.example.com
- 10 mx2.zone01.internal.example.com
pdns_host: powerdns.example.com
pdns_port: 80
pdns_api_key: topsecret
pdns_prot: httpUse HTTP Basic Auth instead of API Key
- powerdns_record:
name: database.zone01.internal.example.com.
zone: zone01.internal.example.com
type: CNAME
content: host01.zone01.internal.example.com
pdns_host: powerdns.example.com
pdns_port: 80
pdns_api_username: myuser
pdns_api_password: mytopsecretpassword
pdns_prot: httppdns_api_key takes preference if both pdns_api_key and pdns_api_username/pdns_api_password are supplied.
Note the trailing '.' following most records, if not present will result in the error "Domain record is not canonical".