ansible.windows.win_dns_record module – Manage Windows Server DNS records
Note
This module is part of the ansible.windows collection (version 3.2.0).
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 ansible.windows.
You need further requirements to be able to use this module,
see Requirements for details.
To use it in a playbook, specify: ansible.windows.win_dns_record.
New in ansible.windows 2.6.0
Synopsis
- Manage DNS records within an existing Windows Server DNS zone. 
Requirements
The below requirements are needed on the host that executes this module.
- This module requires Windows 8, Server 2012, or newer. 
Parameters
| Parameter | Comments | 
|---|---|
| Should aging be activated for the record. If set to  Choices: 
 | |
| Specifies a DNS server. You can specify an IP address or any value that resolves to an IP address, such as a fully qualified domain name (FQDN), host name, or NETBIOS name. | |
| The name of the record. | |
| The port number of the record. Required when  Supported only for  | |
| The priority number for each service in SRV record. Required when  Supported only for  | |
| Whether the record should exist or not. Choices: 
 | |
| The “time to live” of the record, in seconds. Ignored when  Valid range is 1 - 31557600. Note that an Active Directory forest can specify a minimum TTL, and will dynamically “round up” other values to that minimum. Default:  | |
| The type of DNS record to manage. 
 
 
 
 Choices: 
 | |
| The value(s) to specify. Required when  When  Multiple values can be passed when  Default:  | |
| Weightage given to each service record in SRV record. Required when  Supported only for  | |
| The name of the zone to manage (eg  The zone must already exist. | |
| The name of the zone scope to manage (eg  The zone must already exist. | 
Examples
# Demonstrate creating a matching A and PTR record.
- name: Create database server record
  ansible.windows.win_dns_record:
    name: "cgyl1404p"
    type: "A"
    value: "10.1.1.1"
    zone: "amer.example.com"
- name: Create matching PTR record
  ansible.windows.win_dns_record:
    name: "1.1.1"
    type: "PTR"
    value: "db1"
    zone: "10.in-addr.arpa"
# Demonstrate replacing an A record with a CNAME
- name: Remove static record
  ansible.windows.win_dns_record:
    name: "db1"
    type: "A"
    state: absent
    zone: "amer.example.com"
- name: Create database server alias
  ansible.windows.win_dns_record:
    name: "db1"
    type: "CNAME"
    value: "cgyl1404p.amer.example.com"
    zone: "amer.example.com"
# Demonstrate creating multiple A records for the same name
- name: Create multiple A record values for www
  ansible.windows.win_dns_record:
    name: "www"
    type: "A"
    values:
      - 10.0.42.5
      - 10.0.42.6
      - 10.0.42.7
    zone: "example.com"
# Demonstrates a partial update (replace some existing values with new ones)
# for a pre-existing name
- name: Update www host with new addresses
  ansible.windows.win_dns_record:
    name: "www"
    type: "A"
    values:
      - 10.0.42.5  # this old value was kept (others removed)
      - 10.0.42.12  # this new value was added
    zone: "example.com"
# Demonstrate creating a SRV record
- name: Creating a SRV record with port number and priority
  ansible.windows.win_dns_record:
    name: "test"
    priority: 5
    port: 995
    state: present
    type: "SRV"
    weight: 2
    value: "amer.example.com"
    zone: "example.com"
# Demonstrate creating a NS record with multiple values
- name: Creating NS record
  ansible.windows.win_dns_record:
    name: "ansible.prog"
    state: present
    type: "NS"
    values:
      - 10.0.0.1
      - 10.0.0.2
      - 10.0.0.3
      - 10.0.0.4
    zone: "example.com"
# Demonstrate creating a TXT record
- name: Creating a TXT record with descriptive Text
  ansible.windows.win_dns_record:
    name: "test"
    state: present
    type: "TXT"
    value: "justavalue"
    zone: "example.com"
# Demostrate creating a A record to Zone Scope
- name: Create database server record
  ansible.windows.win_dns_record:
    name: "cgyl1404p.amer.example.com"
    type: "A"
    value: "10.1.1.1"
    zone: "amer.example.com"
    zone_scope: "external"
