community.general.dnsmadeeasy – Interface with dnsmadeeasy.com (a DNS hosting service).
community.general.dnsmadeeasy – Interface with dnsmadeeasy.com (a DNS hosting service).
Note
This plugin is part of the community.general collection (version 2.0.1).
To install it use: ansible-galaxy collection install community.general
.
To use it in a playbook, specify: community.general.dnsmadeeasy
.
Synopsis
- Manages DNS records via the v2 REST API of the DNS Made Easy service. It handles records only; there is no manipulation of domains or monitor/account support yet. See: https://www.dnsmadeeasy.com/integration/restapi/
Requirements
The below requirements are needed on the host that executes this module.
- hashlib
- hmac
Parameters
Parameter | Choices/Defaults | Comments |
---|---|---|
account_key string / required |
Account API Key. | |
account_secret string / required |
Account Secret Key. | |
autoFailover boolean |
|
If true, fallback to the primary IP address is manual after a failover. If false, fallback to the primary IP address is automatic after a failover. |
contactList string |
Default: "" |
Name or id of the contact list that the monitor will notify. The default |
domain string / required |
Domain to work with. Can be the domain name (e.g. "mydomain.com") or the numeric ID of the domain in DNS Made Easy (e.g. "839989") for faster resolution | |
failover boolean |
|
If |
httpFile string |
The file at the Fqdn that the monitor queries for HTTP or HTTPS. | |
httpFqdn string |
The fully qualified domain name used by the monitor. | |
httpQueryString string |
The string in the httpFile that the monitor queries for HTTP or HTTPS. | |
ip1 string |
Primary IP address for the failover. Required if adding or changing the monitor or failover. | |
ip2 string |
Secondary IP address for the failover. Required if adding or changing the failover. | |
ip3 string |
Tertiary IP address for the failover. | |
ip4 string |
Quaternary IP address for the failover. | |
ip5 string |
Quinary IP address for the failover. | |
maxEmails integer |
Default: 1 |
Number of emails sent to the contact list by the monitor. |
monitor boolean |
|
If |
port integer |
Default: 80 |
Port used by the monitor. |
protocol string |
|
Protocol used by the monitor. |
record_name string |
Record name to get/create/delete/update. If record_name is not specified; all records for the domain will be returned in "result" regardless of the state argument. | |
record_ttl integer |
Default: 1800 |
record's "Time to live". Number of seconds the record remains cached in DNS servers. |
record_type string |
|
Record type. |
record_value string |
Record value. HTTPRED: , MX: , NS: , PTR: , SRV: , TXT: " If record_value is not specified; no changes will be made and the record will be returned in 'result' (in other words, this module can be used to fetch a record's current id, type, and ttl) | |
sandbox boolean |
|
Decides if the sandbox API should be used. Otherwise (default) the production API of DNS Made Easy is used. |
sensitivity string |
|
Number of checks the monitor performs before a failover occurs where Low = 8, Medium = 5,and High = 3. |
state string / required |
|
whether the record should exist or not |
systemDescription string |
Default: "" |
Description used by the monitor. |
validate_certs boolean |
|
If |
Notes
Note
- The DNS Made Easy service requires that machines interacting with the API have the proper time and timezone set. Be sure you are within a few seconds of actual time by using NTP.
- This module returns record(s) and monitor(s) in the “result” element when ‘state’ is set to ‘present’. These values can be be registered and used in your playbooks.
- Only A records can have a monitor or failover.
- To add failover, the ‘failover’, ‘autoFailover’, ‘port’, ‘protocol’, ‘ip1’, and ‘ip2’ options are required.
- To add monitor, the ‘monitor’, ‘port’, ‘protocol’, ‘maxEmails’, ‘systemDescription’, and ‘ip1’ options are required.
- The monitor and the failover will share ‘port’, ‘protocol’, and ‘ip1’ options.
Examples
- name: Fetch my.com domain records
community.general.dnsmadeeasy:
account_key: key
account_secret: secret
domain: my.com
state: present
register: response
- name: Create a record
community.general.dnsmadeeasy:
account_key: key
account_secret: secret
domain: my.com
state: present
record_name: test
record_type: A
record_value: 127.0.0.1
- name: Update the previously created record
community.general.dnsmadeeasy:
account_key: key
account_secret: secret
domain: my.com
state: present
record_name: test
record_value: 192.0.2.23
- name: Fetch a specific record
community.general.dnsmadeeasy:
account_key: key
account_secret: secret
domain: my.com
state: present
record_name: test
register: response
- name: Delete a record
community.general.dnsmadeeasy:
account_key: key
account_secret: secret
domain: my.com
record_type: A
state: absent
record_name: test
- name: Add a failover
community.general.dnsmadeeasy:
account_key: key
account_secret: secret
domain: my.com
state: present
record_name: test
record_type: A
record_value: 127.0.0.1
failover: True
ip1: 127.0.0.2
ip2: 127.0.0.3
- name: Add a failover
community.general.dnsmadeeasy:
account_key: key
account_secret: secret
domain: my.com
state: present
record_name: test
record_type: A
record_value: 127.0.0.1
failover: True
ip1: 127.0.0.2
ip2: 127.0.0.3
ip3: 127.0.0.4
ip4: 127.0.0.5
ip5: 127.0.0.6
- name: Add a monitor
community.general.dnsmadeeasy:
account_key: key
account_secret: secret
domain: my.com
state: present
record_name: test
record_type: A
record_value: 127.0.0.1
monitor: yes
ip1: 127.0.0.2
protocol: HTTP # default
port: 80 # default
maxEmails: 1
systemDescription: Monitor Test A record
contactList: my contact list
- name: Add a monitor with http options
community.general.dnsmadeeasy:
account_key: key
account_secret: secret
domain: my.com
state: present
record_name: test
record_type: A
record_value: 127.0.0.1
monitor: yes
ip1: 127.0.0.2
protocol: HTTP # default
port: 80 # default
maxEmails: 1
systemDescription: Monitor Test A record
contactList: 1174 # contact list id
httpFqdn: http://my.com
httpFile: example
httpQueryString: some string
- name: Add a monitor and a failover
community.general.dnsmadeeasy:
account_key: key
account_secret: secret
domain: my.com
state: present
record_name: test
record_type: A
record_value: 127.0.0.1
failover: True
ip1: 127.0.0.2
ip2: 127.0.0.3
monitor: yes
protocol: HTTPS
port: 443
maxEmails: 1
systemDescription: monitoring my.com status
contactList: emergencycontacts
- name: Remove a failover
community.general.dnsmadeeasy:
account_key: key
account_secret: secret
domain: my.com
state: present
record_name: test
record_type: A
record_value: 127.0.0.1
failover: no
- name: Remove a monitor
community.general.dnsmadeeasy:
account_key: key
account_secret: secret
domain: my.com
state: present
record_name: test
record_type: A
record_value: 127.0.0.1
monitor: no
Authors
- Brice Burgess (@briceburg)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/general/dnsmadeeasy_module.html