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 3.3.4).
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_recordfrom 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,  Mutually exclusive with  | |
| The password for the Hosttech API user. Mutually exclusive with  Since community.dns 1.2.0, the alias  | |
| The username for the Hosttech API user. If provided,  Mutually exclusive with  | |
| 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. Default:  | |
| 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.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  | |
| Support: full | When run twice in a row outside check mode, with the same arguments, the second invocation indicates no change. This assumes that the system controlled/queried by the module has not changed in a relevant way. | 
See Also
See also
- Supported DNS records
- More information on supported DNS record types. 
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:  | 
