community.dns.hetzner_dns_record_set module – Add or delete record sets in Hetzner DNS service
Note
This module is part of the community.dns collection (version 3.0.7).
You might already have this collection installed if you are using the ansible
package.
It is not included in ansible-core
.
To check whether it is installed, run ansible-galaxy collection list
.
To install it, use: ansible-galaxy collection install community.dns
.
To use it in a playbook, specify: community.dns.hetzner_dns_record_set
.
New in community.dns 2.0.0
Synopsis
Creates and deletes DNS record sets in Hetzner DNS service.
Parameters
Parameter |
Comments |
---|---|
Determines the threshold from when on bulk operations are used. The default value 2 means that if 2 or more operations of a kind are planned, and the API supports bulk operations for this kind of operation, they will be used. Default: |
|
The token for the Hetzner API. If not provided, will be read from the environment variable |
|
This option defines the behavior if the record set already exists, but differs from the specified record set. For this comparison, If set to If set to If set to If set to If Choices:
|
|
Specifies the state of the resource record. Choices:
|
|
The TTL to give the new record, in seconds. |
|
Whether to treat numeric escape sequences ( The default changed to Choices:
|
|
Determines how TXT entry values are converted between the API and this module’s input and output. The value The value The value The default value, Note: the conversion code assumes UTF-8 encoding for values. If you need another encoding use Choices:
|
|
The type of DNS record to create or delete. Choices:
|
|
The new value when creating a DNS record. YAML lists or multiple comma-spaced values are allowed. When deleting a record all values for the record must be specified or it will not be deleted. Must be specified if Will be ignored if |
|
Attributes
Attribute |
Support |
Description |
---|---|---|
Action group: community.dns.hetzner added in community.dns 2.4.0 |
Use |
|
Support: full |
Can run in |
|
Support: full |
Will return details on what has changed (or possibly needs changing in |
Notes
Note
For
CNAME
records, use absolute DNS names for values. Absolute DNS names end with a trailing period.
, for examplefoo.example.com.
. If you use a relative DNS name, with no trailing period, the value will be relative to the zone of theCNAME
record.
Examples
- name: Add new.foo.com as an A record with 3 IPs
community.dns.hetzner_dns_record_set:
state: present
zone: foo.com
record: new.foo.com
type: A
ttl: 7200
value: 1.1.1.1,2.2.2.2,3.3.3.3
hetzner_token: access_token
- name: Update new.foo.com as an A record with a list of 3 IPs
community.dns.hetzner_dns_record_set:
state: present
zone: foo.com
record: new.foo.com
type: A
ttl: 7200
value:
- 1.1.1.1
- 2.2.2.2
- 3.3.3.3
hetzner_token: access_token
- name: Retrieve the details for new.foo.com
community.dns.hetzner_dns_record_set_info:
zone: foo.com
record: new.foo.com
type: A
hetzner_token: access_token
register: rec
- name: Delete new.foo.com A record using the results from the facts retrieval command
community.dns.hetzner_dns_record_set:
state: absent
zone: foo.com
record: "{{ rec.set.record }}"
ttl: "{{ rec.set.ttl }}"
type: "{{ rec.set.type }}"
value: "{{ rec.set.value }}"
hetzner_token: access_token
- name: Add an AAAA record
# Note that because there are colons in the value that the IPv6 address must be quoted!
community.dns.hetzner_dns_record_set:
state: present
zone: foo.com
record: localhost.foo.com
type: AAAA
ttl: 7200
value: "::1"
hetzner_token: access_token
- name: Add a TXT record
community.dns.hetzner_dns_record_set:
state: present
zone: foo.com
record: localhost.foo.com
type: TXT
ttl: 7200
value: 'bar'
hetzner_token: access_token
- name: Remove the TXT record
community.dns.hetzner_dns_record_set:
state: absent
zone: foo.com
record: localhost.foo.com
type: TXT
ttl: 7200
value: 'bar'
hetzner_token: access_token
- name: Add a CAA record
community.dns.hetzner_dns_record_set:
state: present
zone: foo.com
record: foo.com
type: CAA
value:
- '128 issue "letsencrypt.org"'
- '128 iodef "mailto:webmaster@foo.com"'
hetzner_token: access_token
- name: Add an MX record
community.dns.hetzner_dns_record_set:
state: present
zone: foo.com
record: foo.com
type: MX
ttl: 3600
value:
- "10 mail.foo.com"
hetzner_token: access_token
- name: Add a CNAME record
community.dns.hetzner_dns_record_set:
state: present
zone: bla.foo.com
record: foo.com
type: CNAME
ttl: 3600
value:
- foo.foo.com
hetzner_token: access_token
- name: Add a PTR record
community.dns.hetzner_dns_record_set:
state: present
zone: foo.foo.com
record: foo.com
type: PTR
ttl: 3600
value:
- foo.foo.com
hetzner_token: access_token
- name: Add an SPF record
community.dns.hetzner_dns_record_set:
state: present
zone: foo.com
record: foo.com
type: SPF
ttl: 3600
value:
- "v=spf1 a mx ~all"
hetzner_token: access_token
- name: Add a PTR record
community.dns.hetzner_dns_record_set:
state: present
zone: foo.com
record: foo.com
type: PTR
ttl: 3600
value:
- "10 100 3333 service.foo.com"
hetzner_token: access_token
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key |
Description |
---|---|
The ID of the zone. Returned: success Sample: |