rax_dns_record - Manage DNS records on Rackspace Cloud DNS

New in version 1.5.

Synopsis

  • Manage DNS records on Rackspace Cloud DNS

Requirements (on host that executes module)

  • python >= 2.6
  • pyrax

Options

parameter required default choices comments
api_key
no
Rackspace API key, overrides credentials.
aliases: password
comment
no
Brief description of the domain. Maximum length of 160 characters
credentials
no
File to find the Rackspace credentials in. Ignored if api_key and username are provided.
aliases: creds_file
data
yes
IP address for A/AAAA record, FQDN for CNAME/MX/NS, or text data for SRV/TXT
domain
no
Domain name to create the record in. This is an invalid option when type=PTR
env
(added in 1.5)
no
loadbalancer
(added in 1.7)
no
Load Balancer ID to create a PTR record for. Only used with type=PTR
name
yes
FQDN record name to create
overwrite
(added in 2.1)
no True
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
no
Required for MX and SRV records, but forbidden for other record types. If specified, must be an integer from 0 to 65535.
region
no DFW
Region to create an instance in.
server
(added in 1.7)
no
Server ID to create a PTR record for. Only used with type=PTR
state
no present
  • present
  • absent
Indicate desired state of the resource
ttl
no 3600
Time to live of record in seconds
type
yes
  • A
  • AAAA
  • CNAME
  • MX
  • NS
  • SRV
  • TXT
  • PTR
DNS record type
username
no
Rackspace username, overrides credentials.
verify_ssl
(added in 1.5)
no
Whether or not to require SSL validation of API endpoints.

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

Notes

Note

  • It is recommended that plays utilizing this module be run with serial: 1 to avoid exceeding the API request limit imposed by the Rackspace CloudDNS API
  • To manipulate a PTR record either loadbalancer or server must be supplied
  • As of version 1.7, the type field is required and no longer defaults to an A record.
  • PTR record 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_CREDENTIALS and RAX_CREDS_FILE points to a credentials file appropriate for pyrax. See https://github.com/rackspace/pyrax/blob/master/docs/getting_started.md#authenticating
  • RAX_USERNAME and RAX_API_KEY obviate the use of a credentials file
  • RAX_REGION defines a Rackspace Public Cloud region (DFW, ORD, LON, ...)

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–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.4/rax_dns_record_module.html