community.general.vr_dns_record (0.1.1) — module

Manages DNS records on Vultr.

Authors: René Moser (@resmo)

preview | supported by community

Install collection

Install with ansible-galaxy collection install community.general:==0.1.1


Add to requirements.yml

  collections:
    - name: community.general
      version: 0.1.1

Description

Create, update and remove DNS records.


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Ensure an A record exists
  vultr_dns_record:
    name: www
    domain: example.com
    data: 10.10.10.10
    ttl: 3600
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- 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
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Ensure a CNAME record exists
  vultr_dns_record:
    name: web
    record_type: CNAME
    domain: example.com
    data: www.example.com
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- 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 }
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Ensure a record is absent
  local_action:
    module: vultr_dns_record
    name: www
    domain: example.com
    state: absent
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- 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

Inputs

    
ttl:
    default: 300
    description:
    - TTL of the record.

data:
    description:
    - Data of the record.
    - Required if C(state=present) or C(multiple=yes).

name:
    aliases:
    - subrecord
    default: ''
    description:
    - The record name (subrecord).

state:
    choices:
    - present
    - absent
    default: present
    description:
    - State of the DNS record.

domain:
    description:
    - The domain the record is related to.
    required: true

api_key:
    description:
    - API key of the Vultr API.
    - The ENV variable C(VULTR_API_KEY) is used as default, when defined.
    type: str

multiple:
    default: false
    description:
    - Whether to use more than one record with similar C(name) including no name and C(record_type).
    - Only allowed for a few record types, e.g. C(record_type=A), C(record_type=NS) or
      C(record_type=MX).
    - C(data) will not be updated, instead it is used as a key to find existing records.
    type: bool

priority:
    default: 0
    description:
    - Priority of the record.

api_account:
    default: default
    description:
    - Name of the ini section in the C(vultr.ini) file.
    - The ENV variable C(VULTR_API_ACCOUNT) is used as default, when defined.
    type: str

api_retries:
    description:
    - Amount of retries in case of the Vultr API retuns an HTTP 503 code.
    - The ENV variable C(VULTR_API_RETRIES) is used as default, when defined.
    - Fallback value is 5 retries if not specified.
    type: int

api_timeout:
    description:
    - HTTP timeout to Vultr API.
    - The ENV variable C(VULTR_API_TIMEOUT) is used as default, when defined.
    - Fallback value is 60 seconds if not specified.
    type: int

record_type:
    aliases:
    - type
    choices:
    - A
    - AAAA
    - CNAME
    - MX
    - SRV
    - CAA
    - TXT
    - NS
    - SSHFP
    default: A
    description:
    - Type of the record.

api_endpoint:
    description:
    - URL to API endpint (without trailing slash).
    - The ENV variable C(VULTR_API_ENDPOINT) is used as default, when defined.
    - Fallback value is U(https://api.vultr.com) if not specified.
    type: str

validate_certs:
    default: true
    description:
    - Validate SSL certs of the Vultr API.
    type: bool

api_retry_max_delay:
    description:
    - Retry backoff delay in seconds is exponential up to this max. value, in seconds.
    - The ENV variable C(VULTR_API_RETRY_MAX_DELAY) is used as default, when defined.
    - Fallback value is 12 seconds.
    type: int

Outputs

vultr_api:
  contains:
    api_account:
      description: Account used in the ini file to select the key
      returned: success
      sample: default
      type: str
    api_endpoint:
      description: Endpoint used for the API requests
      returned: success
      sample: https://api.vultr.com
      type: str
    api_retries:
      description: Amount of max retries for the API requests
      returned: success
      sample: 5
      type: int
    api_retry_max_delay:
      description: Exponential backoff delay in seconds between retries up to this
        max delay value.
      returned: success
      sample: 12
      type: int
      version_added: '2.9'
      version_added_collection: community.general
    api_timeout:
      description: Timeout used for the API requests
      returned: success
      sample: 60
      type: int
  description: Response from Vultr API with a few additions/modification
  returned: success
  type: complex
vultr_dns_record:
  contains:
    data:
      description: Data of the DNS record.
      returned: success
      sample: 10.10.10.10
      type: str
    domain:
      description: Domain the DNS record is related to.
      returned: success
      sample: example.com
      type: str
    id:
      description: The ID of the DNS record.
      returned: success
      sample: 1265277
      type: int
    name:
      description: The name of the DNS record.
      returned: success
      sample: web
      type: str
    priority:
      description: Priority of the DNS record.
      returned: success
      sample: 10
      type: int
    record_type:
      description: The name of the DNS record.
      returned: success
      sample: web
      type: str
    ttl:
      description: Time to live of the DNS record.
      returned: success
      sample: 300
      type: int
  description: Response from Vultr API
  returned: success
  type: complex