W3cubDocs

/Ansible

azure_rm_dnsrecordset - Create, delete and update DNS record sets and records.

New in version 2.4.

Synopsis

  • Creates, deletes, and updates DNS records sets and records within an existing Azure DNS Zone.

Requirements (on host that executes module)

  • python >= 2.7
  • azure >= 2.0.0

Options

parameter required default choices comments
ad_user
no
Active Directory username. Use when authenticating with an Active Directory user rather than service principal.
client_id
no
Azure client ID. Use when authenticating with a Service Principal.
cloud_environment
no AzureCloud
For cloud environments other than the US public cloud, the environment name (as defined by Azure Python SDK, eg, AzureChinaCloud, AzureUSGovernment), or a metadata discovery endpoint URL (required for Azure Stack). Can also be set via credential file profile or the AZURE_CLOUD_ENVIRONMENT environment variable.
password
no
Active Directory user password. Use when authenticating with an Active Directory user rather than service principal.
profile
no
Security profile found in ~/.azure/credentials file.
record_mode
no purge
  • append
  • purge
whether existing record values not sent to the module should be purged
record_type
yes
  • A
  • AAAA
  • CNAME
  • MX
  • NS
  • SRV
  • TXT
  • PTR
the type of record set to create or delete
records
no
list of records to be created depending on the type of record (set)
Dictionary object records
parameter required default choices comments
priority
no
used for creating an SRV record set/records
entry
no
primary data value for all record types.
preference
no
used for creating an MX record set/records
weight
no
used for creating an SRV record set/records
port
no
used for creating an SRV record set/records
relative_name
yes
relative name of the record set
resource_group
yes
name of resource group
secret
no
Azure client secret. Use when authenticating with a Service Principal.
state
no present
  • absent
  • present
Assert the state of the record set. Use 'present' to create or update and 'absent' to delete.
subscription_id
no
Your Azure subscription Id.
tenant
no
Azure tenant ID. Use when authenticating with a Service Principal.
time_to_live
no 3600
time to live of the record set in seconds
zone_name
yes
name of the existing DNS zone in which to manage the record set

Examples

- name: ensure an "A" record set with multiple records
  azure_rm_dnsrecordset:
    resource_group: Testing
    relative_name: www
    zone_name: testing.com
    record_type: A
    state: present
    records:
      - entry: 192.168.100.101
      - entry: 192.168.100.102
      - entry: 192.168.100.103

- name: delete a record set
  azure_rm_dnsrecordset:
    resource_group: Testing
    record_type: A
    relative_name: www
    zone_name: testing.com
    state: absent

- name: create multiple "A" record sets with multiple records
  azure_rm_dnsrecordset:
    resource_group: Testing
    zone_name: testing.com
    state: present
    relative_name: "{{ item.name }}"
    record_type: "{{ item.type }}"
    records: "{{ item.records }}"
  with_items:
    - { name: 'servera', type: 'A', records: [ { entry: '10.10.10.20' }, { entry: '10.10.10.21' }] }
    - { name: 'serverb', type: 'A', records: [ { entry: '10.10.10.30' }, { entry: '10.10.10.41' }] }
    - { name: 'serverc', type: 'A', records: [ { entry: '10.10.10.40' }, { entry: '10.10.10.41' }] }

- name: create SRV records in a new record set
  azure_rm_dnsrecordset:
    resource_group: Testing
    relative_name: _sip._tcp.testing.com
    zone_name: testing.com
    time_to_live: 7200
    record_type: SRV
    state: present
    records:
    - entry: sip.testing.com
      preference: 10
      priority: 20
      weight: 10
      port: 5060

- name: create PTR record in a new record set
  azure_rm_dnsrecordset:
    resource_group: Testing
    relative_name: 192.168.100.101.in-addr.arpa
    zone_name: testing.com
    record_type: PTR
    records:
    - entry: servera.testing.com

- name: create TXT record in a new record set
  azure_rm_dnsrecordset:
    resource_group: Testing
    relative_name: mail.testing.com
    zone_name: testing.com
    record_type: TXT
    records:
    - entry: 'v=spf1 a -all'

Notes

Note

  • For authentication with Azure you can pass parameters, set environment variables or use a profile stored in ~/.azure/credentials. Authentication is possible using a service principal or Active Directory user. To authenticate via service principal, pass subscription_id, client_id, secret and tenant or set environment variables AZURE_SUBSCRIPTION_ID, AZURE_CLIENT_ID, AZURE_SECRET and AZURE_TENANT.
  • To authenticate via Active Directory user, pass ad_user and password, or set AZURE_AD_USER and AZURE_PASSWORD in the environment.
  • Alternatively, credentials can be stored in ~/.azure/credentials. This is an ini file containing a [default] section and the following keys: subscription_id, client_id, secret and tenant or subscription_id, ad_user and password. It is also possible to add additional profiles. Specify the profile by passing profile or setting AZURE_PROFILE in the environment.

Status

This module is flagged as preview which means that it is not guaranteed to have a backwards compatible interface.

For help in developing on modules, should you be so inclined, please read Community Information & Contributing, Testing Ansible and Developing Modules.

© 2012–2017 Michael DeHaan
© 2017 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/azure_rm_dnsrecordset_module.html