community.dns.hetzner_dns_records inventory – Create inventory from Hetzner DNS records


This inventory plugin is part of the community.dns collection (version 2.1.1).

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_records.

New in version 2.0.0: of community.dns


  • Records are matched by prefix / record name and value.






A dictionary of filter value pairs.

Default: {}


list / elements=string

Record types whose values to use.


  • A ← (default)

  • AAAA ← (default)

  • CAA

  • CNAME ← (default)

  • DANE

  • DS


  • MX

  • NS

  • RP

  • SOA

  • SRV

  • TLSA

  • TXT

Default: [“A”, “AAAA”, “CNAME”]


aliases: api_token

string / required

The token for the Hetzner API.

If not provided, will be read from the environment variable HETZNER_DNS_TOKEN.


  • Environment variable: HETZNER_DNS_TOKEN



Determines how TXT entry values are converted between the API and this module’s input and output.

The value 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 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 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, 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 unquoted or quoted, but not api.

Note: the conversion code assumes UTF-8 encoding for values. If you need another encoding use txt_transformation=api and handle the encoding yourself.


  • api

  • quoted

  • unquoted ← (default)



The ID of the DNS zone to modify.

Exactly one of zone_name and zone_id must be specified.


aliases: zone


The DNS zone to modify.

Exactly one of zone_name and zone_id must be specified.


  • Markus Bergholz (@markuman)

  • Felix Fontein (@felixfontein)


Configuration entries for each entry type have a low to high priority order. For example, a variable that is lower in the list will override a variable that is higher up.