community.general.memset_zone_record – Create and delete records in Memset DNS zones.

Note

This plugin is part of the community.general collection (version 2.5.1).

To install it use: ansible-galaxy collection install community.general.

To use it in a playbook, specify: community.general.memset_zone_record.

Synopsis

  • Manage DNS records in a Memset account.

Parameters

Parameter Choices/Defaults Comments
address
string / required
The address for this record (can be IP or text string depending on record type).

aliases: ip, data
api_key
string / required
The API key obtained from the Memset control panel.
priority
integer
SRV and TXT record priority, in the range 0 > 999 (inclusive).
record
string
The subdomain to create.
relative
boolean
    Choices:
  • no ←
  • yes
If set then the current domain is added onto the address field for CNAME, MX, NS and SRVrecord types.
state
string
    Choices:
  • absent
  • present ←
Indicates desired state of resource.
ttl
integer
    Choices:
  • 0
  • 300
  • 600
  • 900
  • 1800
  • 3600
  • 7200
  • 10800
  • 21600
  • 43200
  • 86400
The record's TTL in seconds (will inherit zone's TTL if not explicitly set). This must be a valid int from https://www.memset.com/apidocs/methods_dns.html#dns.zone_record_create.
type
string / required
    Choices:
  • A
  • AAAA
  • CNAME
  • MX
  • NS
  • SRV
  • TXT
The type of DNS record to create.
zone
string / required
The name of the zone to which to add the record to.

Notes

Note

  • Zones can be thought of as a logical group of domains, all of which share the same DNS records (i.e. they point to the same IP). An API key generated via the Memset customer control panel is needed with the following minimum scope - dns.zone_create, dns.zone_delete, dns.zone_list.

  • Currently this module can only create one DNS record at a time. Multiple records should be created using with_items.

Examples

# Create DNS record for www.domain.com
- name: Create DNS record
  community.general.memset_zone_record:
    api_key: dcf089a2896940da9ffefb307ef49ccd
    state: present
    zone: domain.com
    type: A
    record: www
    address: 1.2.3.4
    ttl: 300
    relative: false
  delegate_to: localhost

# create an SPF record for domain.com
- name: Create SPF record for domain.com
  community.general.memset_zone_record:
    api_key: dcf089a2896940da9ffefb307ef49ccd
    state: present
    zone: domain.com
    type: TXT
    address: "v=spf1 +a +mx +ip4:a1.2.3.4 ?all"
  delegate_to: localhost

# create multiple DNS records
- name: Create multiple DNS records
  community.general.memset_zone_record:
    api_key: dcf089a2896940da9ffefb307ef49ccd
    zone: "{{ item.zone }}"
    type: "{{ item.type }}"
    record: "{{ item.record }}"
    address: "{{ item.address }}"
  delegate_to: localhost
  with_items:
    - { 'zone': 'domain1.com', 'type': 'A', 'record': 'www', 'address': '1.2.3.4' }
    - { 'zone': 'domain2.com', 'type': 'A', 'record': 'mail', 'address': '4.3.2.1' }

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key Returned Description
memset_api
complex
when state == present
Record info from the Memset API.

 
address
string
always
Record content (may be an IP, string or blank depending on record type).

Sample:
1.1.1.1
 
id
string
always
Record ID.

Sample:
b0bb1ce851aeea6feeb2dc32fe83bf9c
 
priority
integer
always
Priority for MX and SRV records.

Sample:
10
 
record
string
always
Name of record.

Sample:
www
 
relative
boolean
always
Adds the current domain onto the address field for CNAME, MX, NS and SRV types.

 
ttl
integer
always
Record TTL.

Sample:
10
 
type
string
always
Record type.

Sample:
AAAA
 
zone_id
string
always
Zone ID.

Sample:
b0bb1ce851aeea6feeb2dc32fe83bf9c


Authors

  • Simon Weald (@glitchcrab)