Documentation

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

                                Note

                                To manipulate a PTR record either loadbalancer or server must be supplied

                                Note

                                As of version 1.7, the type field is required and no longer defaults to an A record.

                                Note

                                PTR record support was added in version 1.7

                                Note

                                The following environment variables can be used, RAX_USERNAME, RAX_API_KEY, RAX_CREDS_FILE, RAX_CREDENTIALS, RAX_REGION.

                                Note

                                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

                                Note

                                RAX_USERNAME and RAX_API_KEY obviate the use of a credentials file

                                Note

                                RAX_REGION defines a Rackspace Public Cloud region (DFW, ORD, LON, ...)

                                This is a Core Module

                                For more information on what this means please read Core Modules

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