rax_dns_record - Manage DNS records on Rackspace Cloud DNS

Author:Matt Martz

Synopsis

New in version 1.5.

Manage DNS records on Rackspace Cloud DNS

Options

parameter required default choices comments
api_key no
    Rackspace API key (overrides credentials)
    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)
        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 no
              Environment as configured in ~/.pyrax.cfg, see https://github.com/rackspace/pyrax/blob/master/docs/getting_started.md#pyrax-configuration (added in Ansible 1.5)
              loadbalancer no
                Load Balancer ID to create a PTR record for. Only used with type=PTR (added in Ansible 1.7)
                name yes
                  FQDN record name to create
                  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 no
                        Server ID to create a PTR record for. Only used with type=PTR (added in Ansible 1.7)
                        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 no
                              Whether or not to require SSL validation of API endpoints (added in Ansible 1.5)

                              Note

                              Requires pyrax

                              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
                              

                              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, ...)