On this page
ngine_io.exoscale.exo_dns_record – Manages DNS records on Exoscale DNS.
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_record.
New in version 0.1.0: of ngine_io.exoscale
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.
        
       
        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.
       
        The ENV variable  CLOUDSTACK_REGION is used as default, when defined.
        | 
     
| api_secret
        
        string
         | 
      
        
        Secret key of the Exoscale DNS API.
        
       
        The ENV variable  CLOUDSTACK_SECRET is used as default, when defined.
        | 
     |
| api_timeout
        
        integer
         | 
      Default: 
        10
         | 
      
        
        HTTP timeout to Exoscale DNS API.
        
       
        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
         | 
      
       
  | 
      
        
        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
         | 
      
       
  | 
      
        
        Type of the record.
        
       aliases: rtype, type  | 
     
| state
        
        string
         | 
      
       
  | 
      
        
        State of the record.
         | 
     
| ttl
        
        integer
         | 
      Default: 
        3600
         | 
      
        
        TTL of the record in seconds.
         | 
     
| validate_certs
        
        boolean
         | 
      
       
  | 
      
        
        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_SECRETenvironment variables. ACLOUDSTACK_CONFIGenvironment variable pointing to an.inifile, Acloudstack.inifile in the current working directory. A.cloudstack.inifile in the users home directory. Optionally multiple credentials and endpoints can be specified using ini sections incloudstack.ini. Use the argumentapi_regionto select the section name, default section iscloudstack. - 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
  ngine_io.exoscale.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
  ngine_io.exoscale.exo_dns_record:
    name: web-vm-1
    domain: example.com
    content: 1.2.3.5
- name: Create another A record with same name
  ngine_io.exoscale.exo_dns_record:
    name: web-vm-1
    domain: example.com
    content: 1.2.3.6
    multiple: yes
- name: Create or update a CNAME record
  ngine_io.exoscale.exo_dns_record:
    name: www
    domain: example.com
    record_type: CNAME
    content: web-vm-1
- name: Create another MX record
  ngine_io.exoscale.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
  ngine_io.exoscale.exo_dns_record:
    domain: example.com
    record_type: MX
    content: mx1.example.com
    multiple: yes
    state: absent
- name: Remove a single A record
  ngine_io.exoscale.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
         | 
     |
Authors
- René Moser (@resmo)
 
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
 https://docs.ansible.com/ansible/latest/collections/ngine_io/exoscale/exo_dns_record_module.html