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.3).
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
.
Requirements
The below requirements are needed on the host that executes this module.
pyrax
python >= 2.6
Parameters
Parameter |
Comments |
---|---|
Rackspace API key, overrides credentials. |
|
The URI of the authentication service. If not specified will be set to https://identity.api.rackspacecloud.com/v2.0/ |
|
Brief description of the domain. Maximum length of 160 characters |
|
File to find the Rackspace credentials in. Ignored if api_key and username are provided. |
|
IP address for A/AAAA record, FQDN for CNAME/MX/NS, or text data for SRV/TXT |
|
Domain name to create the record in. This is an invalid option when type=PTR |
|
Environment as configured in ~/.pyrax.cfg, see https://github.com/rackspace/pyrax/blob/master/docs/getting_started.md#pyrax-configuration. |
|
Authentication mechanism to use, such as rackspace or keystone. Default: “rackspace” |
|
Load Balancer ID to create a PTR record for. Only used with type=PTR |
|
FQDN record name to create |
|
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. Choices:
|
|
Required for MX and SRV records, but forbidden for other record types. If specified, must be an integer from 0 to 65535. |
|
Region to create an instance in. |
|
Server ID to create a PTR record for. Only used with type=PTR |
|
Indicate desired state of the resource Choices:
|
|
The tenant ID used for authentication. |
|
The tenant name used for authentication. |
|
Time to live of record in seconds Default: 3600 |
|
DNS record type Choices:
|
|
Rackspace username, overrides credentials. |
|
Whether or not to require SSL validation of API endpoints. Choices:
|
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 APITo manipulate a
PTR
record eitherloadbalancer
orserver
must be suppliedAs of version 1.7, the
type
field is required and no longer defaults to anA
record.PTR
record support was added in version 1.7The following environment variables can be used,
RAX_USERNAME
,RAX_API_KEY
,RAX_CREDS_FILE
,RAX_CREDENTIALS
,RAX_REGION
.RAX_CREDENTIALS
andRAX_CREDS_FILE
points to a credentials file appropriate for pyrax. See https://github.com/rackspace/pyrax/blob/master/docs/getting_started.md#authenticatingRAX_USERNAME
andRAX_API_KEY
obviate the use of a credentials fileRAX_REGION
defines 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_CREDENTIALS
andRAX_CREDS_FILE
points to a credentials file appropriate for pyrax. See https://github.com/rackspace/pyrax/blob/master/docs/getting_started.md#authenticatingRAX_USERNAME
andRAX_API_KEY
obviate the use of a credentials fileRAX_REGION
defines 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)