On this page
community.general.nsupdate – Manage DNS records.
Note
This plugin is part of the community.general collection (version 3.8.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.general.
To use it in a playbook, specify: community.general.nsupdate.
Synopsis
- Create, update and remove DNS records using DDNS updates
 
Requirements
The below requirements are needed on the host that executes this module.
- dnspython
 
Parameters
| Parameter | Choices/Defaults | Comments | 
|---|---|---|
| key_algorithm
        
        string
         | 
      
       
  | 
      
        
        Specify key algorithm used by  key_secret.
        | 
     
| key_name
        
        string
         | 
      
        
        Use TSIG key name to authenticate against DNS  server
        | 
     |
| key_secret
        
        string
         | 
      
        
        Use TSIG key secret, associated with  key_name, to authenticate against server
        | 
     |
| port
        
        integer
         | 
      Default: 
        53
         | 
      
        
        Use this TCP port when connecting to  server.
        | 
     
| protocol
        
        string
         | 
      
       
  | 
      
        
        Sets the transport protocol (TCP or UDP). TCP is the recommended and a more robust option.
         | 
     
| record
        
        string / required
         | 
      
        
        Sets the DNS record to modify. When zone is omitted this has to be absolute (ending with a dot).
         | 
     |
| server
        
        string / required
         | 
      
        
        Apply DNS modification on this server, specified by IPv4 or IPv6 address.
         | 
     |
| state
        
        string
         | 
      
       
  | 
      
        
        Manage DNS record.
         | 
     
| ttl
        
        integer
         | 
      Default: 
        3600
         | 
      
        
        Sets the record TTL.
         | 
     
| type
        
        string
         | 
      Default: 
        "A"
         | 
      
        
        Sets the record type.
         | 
     
| value
        
        list / elements=string
         | 
      
        
        Sets the record value.
         | 
     |
| zone
        
        string
         | 
      
        
        DNS record will be modified on this  
       zone.
       
        When omitted DNS will be queried to attempt finding the correct zone.
        
       
        Starting with Ansible 2.7 this parameter is optional.
         | 
     
Examples
- name: Add or modify ansible.example.org A to 192.168.1.1"
  community.general.nsupdate:
    key_name: "nsupdate"
    key_secret: "+bFQtBCta7j2vWkjPkAFtgA=="
    server: "10.1.1.1"
    zone: "example.org"
    record: "ansible"
    value: "192.168.1.1"
- name: Add or modify ansible.example.org A to 192.168.1.1, 192.168.1.2 and 192.168.1.3"
  community.general.nsupdate:
    key_name: "nsupdate"
    key_secret: "+bFQtBCta7j2vWkjPkAFtgA=="
    server: "10.1.1.1"
    zone: "example.org"
    record: "ansible"
    value: ["192.168.1.1", "192.168.1.2", "192.168.1.3"]
- name: Remove puppet.example.org CNAME
  community.general.nsupdate:
    key_name: "nsupdate"
    key_secret: "+bFQtBCta7j2vWkjPkAFtgA=="
    server: "10.1.1.1"
    zone: "example.org"
    record: "puppet"
    type: "CNAME"
    state: absent
- name: Add 1.1.168.192.in-addr.arpa. PTR for ansible.example.org
  community.general.nsupdate:
    key_name: "nsupdate"
    key_secret: "+bFQtBCta7j2vWkjPkAFtgA=="
    server: "10.1.1.1"
    record: "1.1.168.192.in-addr.arpa."
    type: "PTR"
    value: "ansible.example.org."
    state: present
- name: Remove 1.1.168.192.in-addr.arpa. PTR
  community.general.nsupdate:
    key_name: "nsupdate"
    key_secret: "+bFQtBCta7j2vWkjPkAFtgA=="
    server: "10.1.1.1"
    record: "1.1.168.192.in-addr.arpa."
    type: "PTR"
    state: absent
  Return Values
Common return values are documented here, the following are the fields unique to this module:
| Key | Returned | Description | 
|---|---|---|
| changed
        
        string
         | 
      success | 
        
        If module has modified record
          | 
     
| dns_rc
        
        integer
         | 
      always | 
        
        dnspython return code
         Sample:
        
       
        4
         | 
     
| dns_rc_str
        
        string
         | 
      always | 
        
        dnspython return code (string representation)
         Sample:
        
       
        REFUSED
         | 
     
| record
        
        string
         | 
      success | 
        
        DNS record
         Sample:
        
       
        ansible
         | 
     
| ttl
        
        integer
         | 
      success | 
        
        DNS record TTL
         Sample:
        
       
        86400
         | 
     
| type
        
        string
         | 
      success | 
        
        DNS record type
         Sample:
        
       
        CNAME
         | 
     
| value
        
        list / elements=string
         | 
      success | 
        
        DNS record value(s)
         Sample:
        
       
        192.168.1.1
         | 
     
| zone
        
        string
         | 
      success | 
        
        DNS record zone
         Sample:
        
       
        example.org.
         | 
     
Authors
- Loic Blot (@nerzhul)
 
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
 https://docs.ansible.com/ansible/latest/collections/community/general/nsupdate_module.html