community.dns.hosttech_dns_record_set module – Add or delete record sets in Hosttech DNS service
Note
This module is part of the community.dns collection (version 2.4.2).
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
.
You need further requirements to be able to use this module,
see Requirements for details.
To use it in a playbook, specify: community.dns.hosttech_dns_record_set
.
New in community.dns 2.0.0
Synopsis
Creates and deletes DNS record sets in Hosttech DNS service.
This module replaces
hosttech_dns_record
from community.dns before 2.0.0.
Requirements
The below requirements are needed on the host that executes this module.
lxml
Parameters
Parameter |
Comments |
---|---|
The password for the Hosttech API user. If provided, hosttech_username must also be provided. Mutually exclusive with hosttech_token. |
|
The password for the Hosttech API user. Mutually exclusive with hosttech_username and hosttech_password. Since community.dns 1.2.0, the alias api_token can be used. |
|
The username for the Hosttech API user. If provided, hosttech_password must also be provided. Mutually exclusive with hosttech_token. |
|
This option defines the behavior if the record set already exists, but differs from the specified record set. For this comparison, value and ttl are used for all records of type type matching the prefix resp. record. If set to If set to If set to If set to If state=absent and the value is not Choices:
|
|
The prefix of the DNS record. This is the part of record before zone_name. For example, if the record to be modified is Exactly one of record and prefix must be specified. |
|
The full DNS record to create or delete. Exactly one of record and prefix must be specified. |
|
Specifies the state of the resource record. Choices:
|
|
The TTL to give the new record, in seconds. Will be ignored if state=absent and on_existing=replace. Default: |
|
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 txt_transformation=api and handle the encoding yourself. 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 state=present or when on_existing is not Will be ignored if state=absent and on_existing=replace. |
|
The ID of the DNS zone to modify. Exactly one of zone_name and zone_id must be specified. |
|
The DNS zone to modify. Exactly one of zone_name and zone_id must be specified. |
Attributes
Attribute |
Support |
Description |
---|---|---|
Action group: community.dns.hosttech 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 |
Examples
- name: Add new.foo.com as an A record with 3 IPs
community.dns.hosttech_dns_record_set:
state: present
zone_name: foo.com
record: new.foo.com
type: A
ttl: 7200
value: 1.1.1.1,2.2.2.2,3.3.3.3
hosttech_token: access_token
- name: Update new.foo.com as an A record with a list of 3 IPs
community.dns.hosttech_dns_record_set:
state: present
zone_name: foo.com
record: new.foo.com
type: A
ttl: 7200
value:
- 1.1.1.1
- 2.2.2.2
- 3.3.3.3
hosttech_token: access_token
- name: Retrieve the details for new.foo.com
community.dns.hosttech_dns_record_set_info:
zone_name: foo.com
record: new.foo.com
type: A
hosttech_username: foo
hosttech_password: bar
register: rec
- name: Delete new.foo.com A record using the results from the facts retrieval command
community.dns.hosttech_dns_record_set:
state: absent
zone_name: foo.com
record: "{{ rec.set.record }}"
ttl: "{{ rec.set.ttl }}"
type: "{{ rec.set.type }}"
value: "{{ rec.set.value }}"
hosttech_username: foo
hosttech_password: bar
- name: Add an AAAA record
# Note that because there are colons in the value that the IPv6 address must be quoted!
community.dns.hosttech_dns_record_set:
state: present
zone_name: foo.com
record: localhost.foo.com
type: AAAA
ttl: 7200
value: "::1"
hosttech_token: access_token
- name: Add a TXT record
community.dns.hosttech_dns_record_set:
state: present
zone_name: foo.com
record: localhost.foo.com
type: TXT
ttl: 7200
value: 'bar'
hosttech_username: foo
hosttech_password: bar
- name: Remove the TXT record
community.dns.hosttech_dns_record_set:
state: absent
zone_name: foo.com
record: localhost.foo.com
type: TXT
ttl: 7200
value: 'bar'
hosttech_username: foo
hosttech_password: bar
- name: Add a CAA record
community.dns.hosttech_dns_record_set:
state: present
zone_name: foo.com
record: foo.com
type: CAA
ttl: 3600
value:
- "128 issue letsencrypt.org"
- "128 iodef mailto:[email protected]"
hosttech_token: access_token
- name: Add an MX record
community.dns.hosttech_dns_record_set:
state: present
zone_name: foo.com
record: foo.com
type: MX
ttl: 3600
value:
- "10 mail.foo.com"
hosttech_token: access_token
- name: Add a CNAME record
community.dns.hosttech_dns_record_set:
state: present
zone_name: bla.foo.com
record: foo.com
type: CNAME
ttl: 3600
value:
- foo.foo.com
hosttech_username: foo
hosttech_password: bar
- name: Add a PTR record
community.dns.hosttech_dns_record_set:
state: present
zone_name: foo.foo.com
record: foo.com
type: PTR
ttl: 3600
value:
- foo.foo.com
hosttech_token: access_token
- name: Add an SPF record
community.dns.hosttech_dns_record_set:
state: present
zone_name: foo.com
record: foo.com
type: SPF
ttl: 3600
value:
- "v=spf1 a mx ~all"
hosttech_username: foo
hosttech_password: bar
- name: Add a PTR record
community.dns.hosttech_dns_record_set:
state: present
zone_name: foo.com
record: foo.com
type: PTR
ttl: 3600
value:
- "10 100 3333 service.foo.com"
hosttech_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: |
Collection links
Issue Tracker Repository (Sources) Submit a bug report Request a feature Communication