exo_dns_record – Manages DNS records on Exoscale DNS¶
New in version 2.2.
Synopsis¶
Create, update and delete records.
Requirements¶
The below requirements are needed on the host that executes this module.
python >= 2.6
Parameters¶
Parameter | Choices/Defaults | Comments |
---|---|---|
api_key
string
|
API key of the Exoscale DNS API.
Since 2.4, the ENV variable
CLOUDSTACK_KEY is used as default, when defined. |
|
api_region
string
|
Default: "cloudstack"
|
Name of the ini section in the
cloustack.ini file.Since 2.4, the ENV variable
CLOUDSTACK_REGION is used as default, when defined. |
api_secret
string
|
Secret key of the Exoscale DNS API.
Since 2.4, the ENV variable
CLOUDSTACK_SECRET is used as default, when defined. |
|
api_timeout
integer
|
Default: 10
|
HTTP timeout to Exoscale DNS API.
Since 2.4, the ENV variable
CLOUDSTACK_TIMEOUT is used as default, when defined. |
content
-
|
Content of the record.
Required if
state=present or multiple=yes .aliases: value, address |
|
domain
-
/ required
|
Domain the record is related to.
|
|
multiple
boolean
|
|
Whether there are more than one records with similar
name and record_type .Only allowed for a few record types, e.g.
record_type=A , record_type=NS or record_type=MX .content will not be updated, instead it is used as a key to find existing records. |
name
-
|
Default: ""
|
Name of the record.
|
prio
-
|
Priority of the record.
aliases: priority |
|
record_type
-
|
|
Type of the record.
aliases: rtype, type |
state
-
|
|
State of the record.
|
ttl
-
|
Default: 3600
|
TTL of the record in seconds.
|
validate_certs
boolean
|
|
Validate SSL certs of the Exoscale DNS API.
|
Notes¶
Note
As Exoscale DNS uses the same API key and secret for all services, we reuse the config used for Exscale Compute based on CloudStack. The config is read from several locations, in the following order. The
CLOUDSTACK_KEY
,CLOUDSTACK_SECRET
environment variables. ACLOUDSTACK_CONFIG
environment variable pointing to an.ini
file, Acloudstack.ini
file in the current working directory. A.cloudstack.ini
file in the users home directory. Optionally multiple credentials and endpoints can be specified using ini sections incloudstack.ini
. Use the argumentapi_region
to select the section name, default section iscloudstack
.This module does not support multiple A records and will complain properly if you try.
More information Exoscale DNS can be found on https://community.exoscale.ch/documentation/dns/.
This module supports check mode and diff.
Examples¶
- name: Create or update an A record
local_action:
module: exo_dns_record
name: web-vm-1
domain: example.com
content: 1.2.3.4
- name: Update an existing A record with a new IP
local_action:
module: exo_dns_record
name: web-vm-1
domain: example.com
content: 1.2.3.5
- name: Create another A record with same name
local_action:
module: exo_dns_record
name: web-vm-1
domain: example.com
content: 1.2.3.6
multiple: yes
- name: Create or update a CNAME record
local_action:
module: exo_dns_record
name: www
domain: example.com
record_type: CNAME
content: web-vm-1
- name: Create another MX record
local_action:
module: exo_dns_record
domain: example.com
record_type: MX
content: mx1.example.com
prio: 10
multiple: yes
- name: Delete one MX record out of multiple
local_action:
module: exo_dns_record
domain: example.com
record_type: MX
content: mx1.example.com
multiple: yes
state: absent
- name: Remove a single A record
local_action:
module: exo_dns_record
name: www
domain: example.com
state: absent
Return Values¶
Common return values are documented here, the following are the fields unique to this module:
Key | Returned | Description | |
---|---|---|---|
exo_dns_record
complex
|
success |
API record results
|
|
content
string
|
success |
value of the record
Sample:
1.2.3.4
|
|
created_at
string
|
success |
When the record was created
Sample:
2016-08-12T15:24:23.989Z
|
|
domain
string
|
success |
Name of the domain
Sample:
example.com
|
|
domain_id
integer
|
success |
ID of the domain
Sample:
254324
|
|
id
integer
|
success |
ID of the record
Sample:
254324
|
|
name
string
|
success |
name of the record
Sample:
www
|
|
parent_id
integer
|
success |
ID of the parent
|
|
prio
integer
|
success |
Priority of the record
Sample:
10
|
|
record_type
string
|
success |
Priority of the record
Sample:
A
|
|
system_record
boolean
|
success |
Whether the record is a system record or not
|
|
ttl
integer
|
success |
Time to live of the record
Sample:
3600
|
|
updated_at
string
|
success |
When the record was updated
Sample:
2016-08-12T15:24:23.989Z
|
Status¶
This module is not guaranteed to have a backwards compatible interface. [preview]
This module is maintained by the Ansible Community. [community]