ngine_io.vultr.vultr_dns_record – Manages DNS records on Vultr.

Note

This plugin is part of the ngine_io.vultr collection (version 1.1.0).

To install it use: ansible-galaxy collection install ngine_io.vultr.

To use it in a playbook, specify: ngine_io.vultr.vultr_dns_record.

New in version 0.1.0: of ngine_io.vultr

Synopsis

  • Create, update and remove DNS records.

Requirements

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

  • python >= 2.6

Parameters

Parameter Choices/Defaults Comments
api_account
string
Default:
"default"
Name of the ini section in the vultr.ini file.
The ENV variable VULTR_API_ACCOUNT is used as default, when defined.
api_endpoint
string
URL to API endpint (without trailing slash).
The ENV variable VULTR_API_ENDPOINT is used as default, when defined.
Fallback value is https://api.vultr.com if not specified.
api_key
string
API key of the Vultr API.
The ENV variable VULTR_API_KEY is used as default, when defined.
api_retries
integer
Amount of retries in case of the Vultr API retuns an HTTP 503 code.
The ENV variable VULTR_API_RETRIES is used as default, when defined.
Fallback value is 5 retries if not specified.
api_retry_max_delay
integer
Retry backoff delay in seconds is exponential up to this max. value, in seconds.
The ENV variable VULTR_API_RETRY_MAX_DELAY is used as default, when defined.
Fallback value is 12 seconds.
api_timeout
integer
HTTP timeout to Vultr API.
The ENV variable VULTR_API_TIMEOUT is used as default, when defined.
Fallback value is 60 seconds if not specified.
data
string
Data of the record.
Required if state=present or multiple=yes.
domain
string / required
The domain the record is related to.
multiple
boolean
    Choices:
  • no ←
  • yes
Whether to use more than one record with similar name including no name and record_type.
Only allowed for a few record types, e.g. record_type=A, record_type=NS or record_type=MX.
data will not be updated, instead it is used as a key to find existing records.
name
string
Default:
""
The record name (subrecord).

aliases: subrecord
priority
integer
Default:
0
Priority of the record.
record_type
string
    Choices:
  • A ←
  • AAAA
  • CNAME
  • MX
  • SRV
  • CAA
  • TXT
  • NS
  • SSHFP
Type of the record.

aliases: type
state
string
    Choices:
  • present ←
  • absent
State of the DNS record.
ttl
integer
Default:
300
TTL of the record.
validate_certs
boolean
    Choices:
  • no
  • yes ←
Validate SSL certs of the Vultr API.

Notes

Note

Examples

- name: Ensure an A record exists
  ngine_io.vultr.vultr_dns_record:
    name: www
    domain: example.com
    data: 10.10.10.10
    ttl: 3600

- name: Ensure a second A record exists for round robin LB
  ngine_io.vultr.vultr_dns_record:
    name: www
    domain: example.com
    data: 10.10.10.11
    ttl: 60
    multiple: yes

- name: Ensure a CNAME record exists
  ngine_io.vultr.vultr_dns_record:
    name: web
    record_type: CNAME
    domain: example.com
    data: www.example.com

- name: Ensure MX record exists
  ngine_io.vultr.vultr_dns_record:
    record_type: MX
    domain: example.com
    data: "{{ item.data }}"
    priority: "{{ item.priority }}"
    multiple: yes
  with_items:
  - { data: mx1.example.com, priority: 10 }
  - { data: mx2.example.com, priority: 10 }
  - { data: mx3.example.com, priority: 20 }

- name: Ensure a record is absent
  ngine_io.vultr.vultr_dns_record:
    name: www
    domain: example.com
    state: absent

- name: Ensure MX record is absent in case multiple exists
  ngine_io.vultr.vultr_dns_record:
    record_type: MX
    domain: example.com
    data: mx1.example.com
    multiple: yes
    state: absent

Return Values

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

Key Returned Description
vultr_api
complex
success
Response from Vultr API with a few additions/modification

 
api_account
string
success
Account used in the ini file to select the key

Sample:
default
 
api_endpoint
string
success
Endpoint used for the API requests

Sample:
https://api.vultr.com
 
api_retries
integer
success
Amount of max retries for the API requests

Sample:
5
 
api_retry_max_delay
integer
success
Exponential backoff delay in seconds between retries up to this max delay value.

Sample:
12
 
api_timeout
integer
success
Timeout used for the API requests

Sample:
60
vultr_dns_record
complex
success
Response from Vultr API

 
data
string
success
Data of the DNS record.

Sample:
10.10.10.10
 
domain
string
success
Domain the DNS record is related to.

Sample:
example.com
 
id
integer
success
The ID of the DNS record.

Sample:
1265277
 
name
string
success
The name of the DNS record.

Sample:
web
 
priority
integer
success
Priority of the DNS record.

Sample:
10
 
record_type
string
success
The name of the DNS record.

Sample:
web
 
ttl
integer
success
Time to live of the DNS record.

Sample:
300


Authors

  • René Moser (@resmo)