community.dns.hosttech_dns_record (2.8.3) — module

Add or delete a single record in Hosttech DNS service

| "added in version" 2.0.0 of community.dns"

Authors: Felix Fontein (@felixfontein)

Install collection

Install with ansible-galaxy collection install community.dns:==2.8.3


Add to requirements.yml

  collections:
    - name: community.dns
      version: 2.8.3

Description

Creates and deletes single DNS records in Hosttech DNS service.

If you do not want to add/remove values, but replace values, you will be interested in modifying a B(record set) and not a single record. This is in particular important when working with C(CNAME) and C(SOA) records. Use the M(community.dns.hosttech_dns_record_set) module for working with record sets.

Records are matched by prefix / record name and value.

This module replaces C(hosttech_dns_record) from community.dns before 2.0.0.


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Add a new.foo.com A record
  community.dns.hosttech_dns_record:
    state: present
    zone: foo.com
    record: new.foo.com
    type: A
    ttl: 7200
    value: 1.1.1.1
    hosttech_token: access_token
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Remove a new.foo.com A record
  community.dns.hosttech_dns_record:
    state: absent
    zone_name: foo.com
    record: new.foo.com
    type: A
    ttl: 7200
    value: 2.2.2.2
    hosttech_token: access_token

Inputs

    
ttl:
    default: 3600
    description:
    - The TTL to give the new record, in seconds.
    - This is not used for record deletion.
    type: int

type:
    choices:
    - A
    - AAAA
    - CAA
    - CNAME
    - MX
    - NS
    - PTR
    - SPF
    - SRV
    - TXT
    description:
    - The type of DNS record to create or delete.
    required: true
    type: str

state:
    choices:
    - present
    - absent
    description:
    - Specifies the state of the resource record.
    required: true
    type: str

value:
    description:
    - The new value when creating a DNS record.
    - When deleting a record all values for the record must be specified or it will not
      be deleted.
    required: true
    type: str

prefix:
    description:
    - The prefix of the DNS record.
    - This is the part of O(record) before O(zone_name). For example, if the record to
      be modified is C(www.example.com) for the zone C(example.com), the prefix is V(www).
      If the record in this example would be C(example.com), the prefix would be V('')
      (empty string).
    - Exactly one of O(record) and O(prefix) must be specified.
    type: str

record:
    description:
    - The full DNS record to create or delete.
    - Exactly one of O(record) and O(prefix) must be specified.
    type: str

zone_id:
    description:
    - The ID of the DNS zone to modify.
    - Exactly one of O(zone_name) and O(zone_id) must be specified.
    type: int

zone_name:
    aliases:
    - zone
    description:
    - The DNS zone to modify.
    - Exactly one of O(zone_name) and O(zone_id) must be specified.
    type: str

hosttech_token:
    aliases:
    - api_token
    description:
    - The password for the Hosttech API user.
    - Mutually exclusive with O(hosttech_username) and O(hosttech_password).
    - Since community.dns 1.2.0, the alias O(ignore:api_token) can be used.
    type: str
    version_added: 0.2.0
    version_added_collection: community.dns

hosttech_password:
    description:
    - The password for the Hosttech API user.
    - If provided, O(hosttech_username) must also be provided.
    - Mutually exclusive with O(hosttech_token).
    type: str

hosttech_username:
    description:
    - The username for the Hosttech API user.
    - If provided, O(hosttech_password) must also be provided.
    - Mutually exclusive with O(hosttech_token).
    type: str

txt_transformation:
    choices:
    - api
    - quoted
    - unquoted
    default: unquoted
    description:
    - Determines how TXT entry values are converted between the API and this module's
      input and output.
    - The value V(api) means that values are returned from this module as they are returned
      from the API, and pushed to the API as they have been passed to this module. For
      idempotency checks, the input string will be compared to the strings returned by
      the API. The API might automatically transform some values, like splitting long
      values or adding quotes, which can cause problems with idempotency.
    - The value V(unquoted) automatically transforms values so that you can pass in unquoted
      values, and the module will return unquoted values. If you pass in quoted values,
      they will be double-quoted.
    - The value V(quoted) automatically transforms values so that you must use quoting
      for values that contain spaces, characters such as quotation marks and backslashes,
      and that are longer than 255 bytes. It also makes sure to return values from the
      API in a normalized encoding.
    - The default value, V(unquoted), ensures that you can work with values without having
      to care about how to correctly quote for DNS. Most users should use one of V(unquoted)
      or V(quoted), but not V(api).
    - B(Note:) the conversion code assumes UTF-8 encoding for values. If you need another
      encoding use O(txt_transformation=api) and handle the encoding yourself.
    type: str

txt_character_encoding:
    choices:
    - decimal
    - octal
    description:
    - Whether to treat numeric escape sequences (V(\\xyz)) as octal or decimal numbers.
      This is only used when O(txt_transformation=quoted).
    - The current default is V(octal) which is deprecated. It will change to V(decimal)
      in community.dns 3.0.0. The value V(decimal) is compatible to L(RFC 1035, https://www.ietf.org/rfc/rfc1035.txt).
    type: str
    version_added: 2.5.0
    version_added_collection: community.dns

Outputs

zone_id:
  description: The ID of the zone.
  returned: success
  sample: 23
  type: int