ngine_io.exoscale.exo_dns_domain – Manages domain records on Exoscale DNS API.

Note

This plugin is part of the ngine_io.exoscale collection (version 1.0.0).

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 ngine_io.exoscale.

To use it in a playbook, specify: ngine_io.exoscale.exo_dns_domain.

New in version 0.1.0: of ngine_io.exoscale

Synopsis

  • Create and remove domain records.

Requirements

The below requirements are needed on the host that executes this module.

  • python >= 2.6

Parameters

Parameter

Comments

api_key

string

API key of the Exoscale DNS API.

The ENV variable CLOUDSTACK_KEY is used as default, when defined.

api_region

string

Name of the ini section in the cloustack.ini file.

The ENV variable CLOUDSTACK_REGION is used as default, when defined.

Default: “cloudstack”

api_secret

string

Secret key of the Exoscale DNS API.

The ENV variable CLOUDSTACK_SECRET is used as default, when defined.

api_timeout

integer

HTTP timeout to Exoscale DNS API.

The ENV variable CLOUDSTACK_TIMEOUT is used as default, when defined.

Default: 10

name

string / required

Name of the record.

state

string

State of the resource.

Choices:

  • present ← (default)

  • absent

validate_certs

boolean

Validate SSL certs of the Exoscale DNS API.

Choices:

  • no

  • yes ← (default)

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 a domain
  exo_dns_domain:
    name: example.com

- name: Remove a domain
  exo_dns_domain:
    name: example.com
    state: absent

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key

Description

exo_dns_domain

complex

API domain results

Returned: success

account_id

integer

Your account ID

Returned: success

Sample: 34569

auto_renew

boolean

Whether domain is auto renewed or not

Returned: success

Sample: false

created_at

string

When the domain was created

Returned: success

Sample: “2016-08-12T15:24:23.989Z”

expires_on

string

When the domain expires

Returned: success

Sample: “2016-08-12T15:24:23.989Z”

id

integer

ID of the domain

Returned: success

Sample: “2016-08-12T15:24:23.989Z”

lockable

boolean

Whether the domain is lockable or not

Returned: success

Sample: true

name

string

Domain name

Returned: success

Sample: “example.com”

record_count

integer

Number of records related to this domain

Returned: success

Sample: 5

registrant_id

integer

ID of the registrant

Returned: success

service_count

integer

Number of services

Returned: success

Sample: 0

state

string

State of the domain

Returned: success

Sample: “hosted”

token

string

Token

Returned: success

Sample: “r4NzTRp6opIeFKfaFYvOd6MlhGyD07jl”

unicode_name

string

Domain name as unicode

Returned: success

Sample: “example.com”

updated_at

string

When the domain was updated last.

Returned: success

Sample: “2016-08-12T15:24:23.989Z”

user_id

integer

ID of the user

Returned: success

whois_protected

boolean

Whether the whois is protected or not

Returned: success

Sample: false

Authors

  • René Moser (@resmo)