dnsmadeeasy – Interface with dnsmadeeasy.com (a DNS hosting service)
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 - / required | Account API Key. | |
account_secret - / required | Account Secret Key. | |
autoFailover boolean added in 2.4 |
| 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 - / required added in 2.4 | Default: "" | Name or id of the contact list that the monitor will notify. The default '' means the Account Owner. |
domain - / 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 added in 2.4 |
| If yes , add or change the failover. This is applicable only for A records. |
httpFile - added in 2.4 | The file at the Fqdn that the monitor queries for HTTP or HTTPS. | |
httpFqdn - added in 2.4 | The fully qualified domain name used by the monitor. | |
httpQueryString - added in 2.4 | The string in the httpFile that the monitor queries for HTTP or HTTPS. | |
ip1 - added in 2.4 | Primary IP address for the failover. Required if adding or changing the monitor or failover. | |
ip2 - added in 2.4 | Secondary IP address for the failover. Required if adding or changing the failover. | |
ip3 - added in 2.4 | Tertiary IP address for the failover. | |
ip4 - added in 2.4 | Quaternary IP address for the failover. | |
ip5 - added in 2.4 | Quinary IP address for the failover. | |
maxEmails - / required added in 2.4 | Default: 1 | Number of emails sent to the contact list by the monitor. |
monitor boolean added in 2.4 |
| If yes , add or change the monitor. This is applicable only for A records. |
port - / required added in 2.4 | Default: 80 | Port used by the monitor. |
protocol - / required added in 2.4 |
| Protocol used by the monitor. |
record_name - | 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 - | Default: 1800 | record's "Time to live". Number of seconds the record remains cached in DNS servers. |
record_type - |
| Record type. |
record_value - | Record value. HTTPRED: <redirection URL>, MX: <priority> <target name>, NS: <name server>, PTR: <target name>, SRV: <priority> <weight> <port> <target name>, TXT: <text value>" 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 added in 2.7 |
| Decides if the sandbox API should be used. Otherwise (default) the production API of DNS Made Easy is used. |
sensitivity - / required added in 2.4 |
| Number of checks the monitor performs before a failover occurs where Low = 8, Medium = 5,and High = 3. |
state - / required |
| whether the record should exist or not |
systemDescription - / required added in 2.4 | Default: "" | Description used by the monitor. |
validate_certs boolean |
| If no , SSL certificates will not be validated. This should only be used on personally controlled sites using self-signed certificates. |
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
# fetch my.com domain records - dnsmadeeasy: account_key: key account_secret: secret domain: my.com state: present register: response # create / ensure the presence of a record - dnsmadeeasy: account_key: key account_secret: secret domain: my.com state: present record_name: test record_type: A record_value: 127.0.0.1 # update the previously created record - dnsmadeeasy: account_key: key account_secret: secret domain: my.com state: present record_name: test record_value: 192.0.2.23 # fetch a specific record - dnsmadeeasy: account_key: key account_secret: secret domain: my.com state: present record_name: test register: response # delete a record / ensure it is absent - dnsmadeeasy: account_key: key account_secret: secret domain: my.com record_type: A state: absent record_name: test # Add a failover - 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 - 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 # Add a monitor - 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 # Add a monitor with http options - 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 # Add a monitor and a failover - 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 # Remove a failover - 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 # Remove a monitor - 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
Status
- This module is not guaranteed to have a backwards compatible interface. [preview]
- This module is maintained by the Ansible Community. [community]
Authors
- Brice Burgess (@briceburg)
Hint
If you notice any issues in this documentation you can edit this document to improve it.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.8/modules/dnsmadeeasy_module.html