# vultr_dns_record – Manages DNS records on Vultr

New in version 2.5.

- Synopsis

- Requirements

- Parameters

- Notes

- Examples

- Return Values

- Status

## Synopsis

- Create, update and remove DNS records.

Aliases: vr_dns_record

## 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 added in 2.9 |  | 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 - |  | Data of the record. Required if `state=present` or `multiple=yes`.
domain - / 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 - | Default: "" | The record name (subrecord). aliases: subrecord
priority - | Default: 0 | Priority of the record.

record_type
-

Choices:
- A ←
- AAAA
- CNAME
- MX
- SRV
- CAA
- TXT
- NS
- SSHFP

Type of the record.
aliases: type

state
-

Choices:
- present ←
- absent

State of the DNS record.

ttl - | Default: 300 | TTL of the record.

validate_certs
boolean

Choices:
- no
- yes ←

Validate SSL certs of the Vultr API.

## Notes

Note

- Also see the API documentation on https://www.vultr.com/api/.

## Examples

    - name: Ensure an A record exists
      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
      vultr_dns_record:
        name: www
        domain: example.com
        data: 10.10.10.11
        ttl: 60
        multiple: yes

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

    - name: Ensure MX record exists
      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
      local_action:
        module: vultr_dns_record
        name: www
        domain: example.com
        state: absent

    - name: Ensure MX record is absent in case multiple exists
      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 added in 2.9 | 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

## Status

- This module is not guaranteed to have a backwards compatible interface. [preview]

- This module is maintained by the Ansible Community. [community]

### Authors

- René Moser (@resmo)

Hint

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