community / community.general / 8.5.0 / module / ipa_dnsrecord Manage FreeIPA DNS records Authors: Abhijeet Kasurde (@Akasurde)community.general.ipa_dnsrecord (8.5.0) — module
Install with ansible-galaxy collection install community.general:==8.5.0
collections: - name: community.general version: 8.5.0
Add, modify and delete an IPA DNS Record using IPA API.
- name: Ensure dns record is present community.general.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'
- name: Ensure that dns records exists with a TTL community.general.ipa_dnsrecord: name: host02 zone_name: example.com record_type: 'AAAA' record_values: '::1,fe80::1' record_ttl: 300 ipa_host: ipa.example.com ipa_pass: topsecret state: present
- name: Ensure a PTR record is present community.general.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'
- name: Ensure a TXT record is present community.general.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'
- name: Ensure an SRV record is present community.general.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'
- name: Ensure an MX records are present community.general.ipa_dnsrecord: ipa_host: spider.example.com ipa_pass: Passw0rd! state: present zone_name: example.com record_name: '@' record_type: 'MX' record_values: - '1 mailserver-01.example.com' - '2 mailserver-02.example.com'
- name: Ensure that dns record is removed community.general.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
- name: Ensure an NS record for a subdomain is present community,general.ipa_dnsrecord: name: subdomain zone_name: example.com record_type: 'NS' record_value: 'ns1.subdomain.exmaple.com' ipa_host: ipa.example.com ipa_user: admin ipa_pass: ChangeMe!
state: choices: - absent - present default: present description: State to ensure required: false type: str 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 E(IPA_HOST) will be used instead. - If both the environment variable E(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 C(ipa-ca) entry. - If neither the DNS entry, nor the environment E(IPA_HOST), nor the value are available in the task, then the default value will be used. type: str ipa_pass: description: - Password of administrative user. - If the value is not specified in the task, the value of environment variable E(IPA_PASS) will be used instead. - Note that if the C(urllib_gssapi) library is available, it is possible to use GSSAPI to authenticate to FreeIPA. - If the environment variable E(KRB5CCNAME) is available, the module will use this kerberos credentials cache to authenticate to the FreeIPA server. - If the environment variable E(KRB5_CLIENT_KTNAME) is available, and E(KRB5CCNAME) is not; the module will use this kerberos keytab to authenticate. - If GSSAPI is not available, the usage of O(ipa_pass) is required. 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 E(IPA_PORT) will be used instead. - If both the environment variable E(IPA_PORT) and the value are not specified in the task, then default value is set. 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 E(IPA_PROT) will be used instead. - If both the environment variable E(IPA_PROT) and the value are not specified in the task, then default value is set. 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 E(IPA_USER) will be used instead. - If both the environment variable E(IPA_USER) and the value are not specified in the task, then default value is set. type: str zone_name: description: - The DNS zone name to which DNS record needs to be managed. required: true type: str record_ttl: description: - Set the TTL for the record. - Applies only when adding a new or changing the value of O(record_value) or O(record_values). required: false type: int 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 E(IPA_TIMEOUT) will be used instead. - If both the environment variable E(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 type: str record_type: choices: - A - AAAA - A6 - CNAME - DNAME - MX - NS - PTR - SRV - TXT default: A description: - The type of DNS record name. - Currently, 'A', 'AAAA', 'A6', 'CNAME', 'DNAME', 'NS', '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.' - '''NS'' are added in comunity.general 8.2.0.' required: false type: str record_value: description: - Manage DNS record name with this value. - Mutually exclusive with O(record_values), and exactly one of O(record_value) and O(record_values) has to be specified. - Use O(record_values) if you need to specify multiple values. - 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 'NS' record type, this will be the name server hostname. Hostname must already have a valid A or AAAA record. - 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. type: str record_values: description: - Manage DNS record name with this value. - Mutually exclusive with O(record_value), and exactly one of O(record_value) and O(record_values) has to be specified. - 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 'NS' record type, this will be the name server hostname. Hostname must already have a valid A or AAAA record. - 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. elements: str type: list validate_certs: default: true description: - This only applies if O(ipa_prot) is V(https). - If set to V(false), the SSL certificates will not be validated. - This should only set to V(false) used on personally controlled sites using self-signed certificates. type: bool
dnsrecord: description: DNS record as returned by IPA API. returned: always type: dict