On this page
community.general.rax_dns_record – Manage DNS records on Rackspace Cloud DNS
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.rax_dns_record.
Synopsis
- Manage DNS records on Rackspace Cloud DNS
 
Requirements
The below requirements are needed on the host that executes this module.
- pyrax
 - python >= 2.6
 
Parameters
| Parameter | Choices/Defaults | Comments | 
|---|---|---|
| api_key
        
        string
         | 
      
        
        Rackspace API key, overrides credentials.
        
       aliases: password  | 
     |
| auth_endpoint
        
        string
         | 
      
        
        The URI of the authentication service.
        
       
        If not specified will be set to https://identity.api.rackspacecloud.com/v2.0/
         | 
     |
| comment
        
        string
         | 
      
        
        Brief description of the domain. Maximum length of 160 characters
         | 
     |
| credentials
        
        path
         | 
      
        
        File to find the Rackspace credentials in. Ignored if api_key and username are provided.
        
       aliases: creds_file  | 
     |
| data
        
        string / required
         | 
      
        
        IP address for A/AAAA record, FQDN for CNAME/MX/NS, or text data for SRV/TXT
         | 
     |
| domain
        
        string
         | 
      
        
        Domain name to create the record in. This is an invalid option when type=PTR
         | 
     |
| env
        
        string
         | 
      
        
        Environment as configured in ~/.pyrax.cfg, see https://github.com/rackspace/pyrax/blob/master/docs/getting_started.md#pyrax-configuration.
         | 
     |
| identity_type
        
        string
         | 
      Default: 
        "rackspace"
         | 
      
        
        Authentication mechanism to use, such as rackspace or keystone.
         | 
     
| loadbalancer
        
        string
         | 
      
        
        Load Balancer ID to create a PTR record for. Only used with type=PTR
         | 
     |
| name
        
        string / required
         | 
      
        
        FQDN record name to create
         | 
     |
| overwrite
        
        boolean
         | 
      
       
  | 
      
        
        Add new records if data doesn't match, instead of updating existing record with matching name. If there are already multiple records with matching name and overwrite=true, this module will fail.
         | 
     
| priority
        
        integer
         | 
      
        
        Required for MX and SRV records, but forbidden for other record types. If specified, must be an integer from 0 to 65535.
         | 
     |
| region
        
        string
         | 
      
        
        Region to create an instance in.
         | 
     |
| server
        
        string
         | 
      
        
        Server ID to create a PTR record for. Only used with type=PTR
         | 
     |
| state
        
        string
         | 
      
       
  | 
      
        
        Indicate desired state of the resource
         | 
     
| tenant_id
        
        string
         | 
      
        
        The tenant ID used for authentication.
         | 
     |
| tenant_name
        
        string
         | 
      
        
        The tenant name used for authentication.
         | 
     |
| ttl
        
        integer
         | 
      Default: 
        3600
         | 
      
        
        Time to live of record in seconds
         | 
     
| type
        
        string / required
         | 
      
       
  | 
      
        
        DNS record type
         | 
     
| username
        
        string
         | 
      
        
        Rackspace username, overrides credentials.
         | 
     |
| validate_certs
        
        boolean
         | 
      
       
  | 
      
        
        Whether or not to require SSL validation of API endpoints.
        
       aliases: verify_ssl  | 
     
Notes
Note
- It is recommended that plays utilizing this module be run with 
serial: 1to avoid exceeding the API request limit imposed by the Rackspace CloudDNS API - To manipulate a 
PTRrecord eitherloadbalancerorservermust be supplied - As of version 1.7, the 
typefield is required and no longer defaults to anArecord. PTRrecord support was added in version 1.7- The following environment variables can be used, 
RAX_USERNAME,RAX_API_KEY,RAX_CREDS_FILE,RAX_CREDENTIALS,RAX_REGION. RAX_CREDENTIALSandRAX_CREDS_FILEpoints to a credentials file appropriate for pyrax. See https://github.com/rackspace/pyrax/blob/master/docs/getting_started.md#authenticatingRAX_USERNAMEandRAX_API_KEYobviate the use of a credentials fileRAX_REGIONdefines a Rackspace Public Cloud region (DFW, ORD, LON, …)- The following environment variables can be used, 
RAX_USERNAME,RAX_API_KEY,RAX_CREDS_FILE,RAX_CREDENTIALS,RAX_REGION. RAX_CREDENTIALSandRAX_CREDS_FILEpoints to a credentials file appropriate for pyrax. See https://github.com/rackspace/pyrax/blob/master/docs/getting_started.md#authenticatingRAX_USERNAMEandRAX_API_KEYobviate the use of a credentials fileRAX_REGIONdefines a Rackspace Public Cloud region (DFW, ORD, LON, …)
Examples
- name: Create DNS Records
  hosts: all
  gather_facts: False
  tasks:
    - name: Create A record
      local_action:
        module: rax_dns_record
        credentials: ~/.raxpub
        domain: example.org
        name: www.example.org
        data: "{{ rax_accessipv4 }}"
        type: A
      register: a_record
    - name: Create PTR record
      local_action:
        module: rax_dns_record
        credentials: ~/.raxpub
        server: "{{ rax_id }}"
        name: "{{ inventory_hostname }}"
        region: DFW
      register: ptr_record
  Authors
- Matt Martz (@sivel)
 
© 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/rax_dns_record_module.html