ansible.builtin.ipa_dnsrecord (v2.9.27) — module

Manage FreeIPA DNS records

| "added in version" 2.4 of ansible.builtin"

Authors: Abhijeet Kasurde (@Akasurde)

preview | supported by community

Install Ansible via pip

Install with pip install ansible==2.9.27

Description

Add, modify and delete an IPA DNS Record using IPA API.

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Ensure dns record is present
- ipa_dnsrecord:
    ipa_host: spider.example.com
    ipa_pass: Passw0rd!
    state: present
    zone_name: example.com
    record_name: vm-001
    record_type: 'AAAA'
    record_value: '::1'
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Ensure that dns record exists with a TTL
- ipa_dnsrecord:
    name: host02
    zone_name: example.com
    record_type: 'AAAA'
    record_value: '::1'
    record_ttl: 300
    ipa_host: ipa.example.com
    ipa_pass: topsecret
    state: present
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Ensure a PTR record is present
- ipa_dnsrecord:
    ipa_host: spider.example.com
    ipa_pass: Passw0rd!
    state: present
    zone_name: 2.168.192.in-addr.arpa
    record_name: 5
    record_type: 'PTR'
    record_value: 'internal.ipa.example.com'
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Ensure a TXT record is present
- ipa_dnsrecord:
    ipa_host: spider.example.com
    ipa_pass: Passw0rd!
    state: present
    zone_name: example.com
    record_name: _kerberos
    record_type: 'TXT'
    record_value: 'EXAMPLE.COM'
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Ensure an SRV record is present
- ipa_dnsrecord:
    ipa_host: spider.example.com
    ipa_pass: Passw0rd!
    state: present
    zone_name: example.com
    record_name: _kerberos._udp.example.com
    record_type: 'SRV'
    record_value: '10 50 88 ipa.example.com'
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Ensure an MX record is present
- ipa_dnsrecord:
    ipa_host: spider.example.com
    ipa_pass: Passw0rd!
    state: present
    zone_name: example.com
    record_name: '@'
    record_type: 'MX'
    record_value: '1 mailserver.example.com'
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Ensure that dns record is removed
- ipa_dnsrecord:
    name: host01
    zone_name: example.com
    record_type: 'AAAA'
    record_value: '::1'
    ipa_host: ipa.example.com
    ipa_user: admin
    ipa_pass: topsecret
    state: absent

Inputs

    
state:
    choices:
    - present
    - absent
    default: present
    description: State to ensure
    required: false

ipa_host:
    default: ipa.example.com
    description:
    - IP or hostname of IPA server.
    - If the value is not specified in the task, the value of environment variable C(IPA_HOST)
      will be used instead.
    - If both the environment variable C(IPA_HOST) and the value are not specified in
      the task, then DNS will be used to try to discover the FreeIPA server.
    - The relevant entry needed in FreeIPA is the 'ipa-ca' entry.
    - If neither the DNS entry, nor the environment C(IPA_HOST), nor the value are available
      in the task, then the default value will be used.
    - Environment variable fallback mechanism is added in Ansible 2.5.
    type: str

ipa_pass:
    description:
    - Password of administrative user.
    - If the value is not specified in the task, the value of environment variable C(IPA_PASS)
      will be used instead.
    - Note that if the 'urllib_gssapi' library is available, it is possible to use GSSAPI
      to authenticate to FreeIPA.
    - If the environment variable C(KRB5CCNAME) is available, the module will use this
      kerberos credentials cache to authenticate to the FreeIPA server.
    - If the environment variable C(KRB5_CLIENT_KTNAME) is available, and C(KRB5CCNAME)
      is not; the module will use this kerberos keytab to authenticate.
    - If GSSAPI is not available, the usage of 'ipa_pass' is required.
    - Environment variable fallback mechanism is added in Ansible 2.5.
    type: str

ipa_port:
    default: 443
    description:
    - Port of FreeIPA / IPA server.
    - If the value is not specified in the task, the value of environment variable C(IPA_PORT)
      will be used instead.
    - If both the environment variable C(IPA_PORT) and the value are not specified in
      the task, then default value is set.
    - Environment variable fallback mechanism is added in Ansible 2.5.
    type: int

ipa_prot:
    choices:
    - http
    - https
    default: https
    description:
    - Protocol used by IPA server.
    - If the value is not specified in the task, the value of environment variable C(IPA_PROT)
      will be used instead.
    - If both the environment variable C(IPA_PROT) and the value are not specified in
      the task, then default value is set.
    - Environment variable fallback mechanism is added in Ansible 2.5.
    type: str

ipa_user:
    default: admin
    description:
    - Administrative account used on IPA server.
    - If the value is not specified in the task, the value of environment variable C(IPA_USER)
      will be used instead.
    - If both the environment variable C(IPA_USER) and the value are not specified in
      the task, then default value is set.
    - Environment variable fallback mechanism is added in Ansible 2.5.
    type: str

zone_name:
    description:
    - The DNS zone name to which DNS record needs to be managed.
    required: true

record_ttl:
    description:
    - Set the TTL for the record.
    - Applies only when adding a new or changing the value of record_value.
    required: false
    version_added: '2.7'
    version_added_collection: ansible.builtin

ipa_timeout:
    default: 10
    description:
    - Specifies idle timeout (in seconds) for the connection.
    - For bulk operations, you may want to increase this in order to avoid timeout from
      IPA server.
    - If the value is not specified in the task, the value of environment variable C(IPA_TIMEOUT)
      will be used instead.
    - If both the environment variable C(IPA_TIMEOUT) and the value are not specified
      in the task, then default value is set.
    type: int

record_name:
    aliases:
    - name
    description:
    - The DNS record name to manage.
    required: true

record_type:
    choices:
    - A
    - AAAA
    - A6
    - CNAME
    - DNAME
    - PTR
    - TXT
    - SRV
    - MX
    default: A
    description:
    - The type of DNS record name.
    - Currently, 'A', 'AAAA', 'A6', 'CNAME', 'DNAME', 'PTR', 'TXT', 'SRV' and 'MX' are
      supported.
    - '''A6'', ''CNAME'', ''DNAME'' and ''TXT'' are added in version 2.5.'
    - '''SRV'' and ''MX'' are added in version 2.8.'
    required: false

record_value:
    description:
    - Manage DNS record name with this value.
    - In the case of 'A' or 'AAAA' record types, this will be the IP address.
    - In the case of 'A6' record type, this will be the A6 Record data.
    - In the case of 'CNAME' record type, this will be the hostname.
    - In the case of 'DNAME' record type, this will be the DNAME target.
    - In the case of 'PTR' record type, this will be the hostname.
    - In the case of 'TXT' record type, this will be a text.
    - In the case of 'SRV' record type, this will be a service record.
    - In the case of 'MX' record type, this will be a mail exchanger record.
    required: true

validate_certs:
    default: true
    description:
    - This only applies if C(ipa_prot) is I(https).
    - If set to C(no), the SSL certificates will not be validated.
    - This should only set to C(no) used on personally controlled sites using self-signed
      certificates.
    type: bool

Outputs

dnsrecord:
  description: DNS record as returned by IPA API.
  returned: always
  type: dict