exo_dns_record – Manages DNS records on Exoscale DNS

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
string
Content of the record.
Required if state=present or multiple=yes.

aliases: value, address
domain
string / required
Domain the record is related to.
multiple
boolean
    Choices:
  • no ←
  • yes
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
string
Default:
""
Name of the record.
prio
integer
Priority of the record.

aliases: priority
record_type
string
    Choices:
  • A ←
  • ALIAS
  • CNAME
  • MX
  • SPF
  • URL
  • TXT
  • NS
  • SRV
  • NAPTR
  • PTR
  • AAAA
  • SSHFP
  • HINFO
  • POOL
Type of the record.

aliases: rtype, type
state
string
    Choices:
  • present ←
  • absent
State of the record.
ttl
integer
Default:
3600
TTL of the record in seconds.
validate_certs
boolean
    Choices:
  • no
  • yes ←
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. A CLOUDSTACK_CONFIG environment variable pointing to an .ini file, A cloudstack.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 in cloudstack.ini. Use the argument api_region to select the section name, default section is cloudstack.

  • 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
  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
  exo_dns_record:
    name: web-vm-1
    domain: example.com
    content: 1.2.3.5

- name: Create another A record with same name
  exo_dns_record:
    name: web-vm-1
    domain: example.com
    content: 1.2.3.6
    multiple: yes

- name: Create or update a CNAME record
  exo_dns_record:
    name: www
    domain: example.com
    record_type: CNAME
    content: web-vm-1

- name: Create another MX record
  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
  exo_dns_record:
    domain: example.com
    record_type: MX
    content: mx1.example.com
    multiple: yes
    state: absent

- name: Remove a single A record
  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

Authors

  • René Moser (@resmo)

Hint

If you notice any issues in this documentation, you can edit this document to improve it.