community.general.gcdns_record – Creates or removes resource records in Google Cloud DNS
Note
This plugin is part of the community.general collection (version 1.3.2).
To install it use: ansible-galaxy collection install community.general.
To use it in a playbook, specify: community.general.gcdns_record.
DEPRECATED
- Removed in
- 
version 2.0.0 
- Why
- 
Updated modules released with increased functionality 
- Alternative
- 
Use google.cloud.gcp_dns_resource_record_set instead. 
Synopsis
- Creates or removes resource records in Google Cloud DNS.
Requirements
The below requirements are needed on the host that executes this module.
- python >= 2.6
- apache-libcloud >= 0.19.0
Parameters
| Parameter | Choices/Defaults | Comments | 
|---|---|---|
| credentials_file  path  | The path to the JSON file associated with the service account email. | |
| overwrite  boolean  | 
 | Whether an attempt to overwrite an existing record should succeed or fail. The behavior of this option depends on state. If state is  presentand overwrite isTrue, this module will replace an existing resource record of the same name with the provided record_data. If state ispresentand overwrite isFalse, this module will fail if there is an existing resource record with the same name and type, but different resource data.If state is  absentand overwrite isTrue, this module will remove the given resource record unconditionally. If state isabsentand overwrite isFalse, this module will fail if the provided record_data do not match exactly with the existing resource record's record_data. | 
| pem_file  path  | The path to the PEM file associated with the service account email. This option is deprecated and may be removed in a future release. Use credentials_file instead. | |
| project_id  string  | The Google Cloud Platform project ID to use. | |
| record  string / required  | The fully-qualified domain name of the resource record. aliases: name | |
| record_data  list / elements=string  | The record_data to use for the resource record. 
record_data must be specified if state is  presentor overwrite isTrue, or the module will fail.Valid record_data vary based on the record's type. In addition, resource records that contain a DNS domain name in the value field (e.g., CNAME, PTR, SRV, .etc) MUST include a trailing dot in the value. Individual string record_data for TXT records must be enclosed in double quotes. For resource records that have the same name but different record_data (e.g., multiple A records), they must be defined as multiple list entries in a single record. aliases: value | |
| service_account_email  string  | The e-mail address for a service account with access to Google Cloud DNS. | |
| state  string  | 
 | Whether the given resource record should or should not be present. | 
| ttl  integer  | Default: 300 | The amount of time in seconds that a resource record will remain cached by a caching resolver. | 
| type  string / required  | 
 | The type of resource record to add. | 
| zone  string  | The DNS domain name of the zone (e.g., example.com). One of either zone or zone_id must be specified as an option, or the module will fail. If both zone and zone_id are specified, zone_id will be used. | |
| zone_id  string  | The Google Cloud ID of the zone (e.g., example-com). One of either zone or zone_id must be specified as an option, or the module will fail. These usually take the form of domain names with the dots replaced with dashes. A zone ID will never have any dots in it. 
zone_id can be faster than zone in projects with a large number of zones. If both zone and zone_id are specified, zone_id will be used. | 
Notes
Note
- See also community.general.gcdns_zone.
- This modules’s underlying library does not support in-place updates for DNS resource records. Instead, resource records are quickly deleted and recreated.
- SOA records are technically supported, but their functionality is limited to verifying that a zone’s existing SOA record matches a pre-determined value. The SOA record cannot be updated.
- Root NS records cannot be updated.
- NAPTR records are not supported.
Examples
- name: Create an A record
  community.general.gcdns_record:
    record: 'www1.example.com'
    zone: 'example.com'
    type: A
    value: '1.2.3.4'
- name: Update an existing record
  community.general.gcdns_record:
    record: 'www1.example.com'
    zone: 'example.com'
    type: A
    overwrite: true
    value: '5.6.7.8'
- name: Remove an A record
  community.general.gcdns_record:
    record: 'www1.example.com'
    zone_id: 'example-com'
    state: absent
    type: A
    value: '5.6.7.8'
- name: Create a CNAME record. Note the trailing dot of value
  community.general.gcdns_record:
    record: 'www.example.com'
    zone_id: 'example-com'
    type: CNAME
    value: 'www.example.com.'
- name: Create an MX record with a custom TTL. Note the trailing dot of value
  community.general.gcdns_record:
    record: 'example.com'
    zone: 'example.com'
    type: MX
    ttl: 3600
    value: '10 mail.example.com.'
- name: Create multiple A records with the same name
  community.general.gcdns_record:
    record: 'api.example.com'
    zone_id: 'example-com'
    type: A
    record_data:
      - '192.0.2.23'
      - '10.4.5.6'
      - '198.51.100.5'
      - '203.0.113.10'
- name: Change the value of an existing record with multiple record_data
  community.general.gcdns_record:
    record: 'api.example.com'
    zone: 'example.com'
    type: A
    overwrite: true
    record_data:        # WARNING: All values in a record will be replaced
      - '192.0.2.23'
      - '192.0.2.42'    # The changed record
      - '198.51.100.5'
      - '203.0.113.10'
- name: Safely remove a multi-line record
  community.general.gcdns_record:
    record: 'api.example.com'
    zone_id: 'example-com'
    state: absent
    type: A
    record_data:        # NOTE: All of the values must match exactly
      - '192.0.2.23'
      - '192.0.2.42'
      - '198.51.100.5'
      - '203.0.113.10'
- name: Unconditionally remove a record
  community.general.gcdns_record:
    record: 'api.example.com'
    zone_id: 'example-com'
    state: absent
    overwrite: true   # overwrite is true, so no values are needed
    type: A
- name: Create an AAAA record
  community.general.gcdns_record:
    record: 'www1.example.com'
    zone: 'example.com'
    type: AAAA
    value: 'fd00:db8::1'
- name: Create a PTR record
  community.general.gcdns_record:
    record: '10.5.168.192.in-addr.arpa'
    zone: '5.168.192.in-addr.arpa'
    type: PTR
    value: 'api.example.com.'    # Note the trailing dot.
- name: Create an NS record
  community.general.gcdns_record:
    record: 'subdomain.example.com'
    zone: 'example.com'
    type: NS
    ttl: 21600
    record_data:
      - 'ns-cloud-d1.googledomains.com.'    # Note the trailing dots on values
      - 'ns-cloud-d2.googledomains.com.'
      - 'ns-cloud-d3.googledomains.com.'
      - 'ns-cloud-d4.googledomains.com.'
- name: Create a TXT record
  community.general.gcdns_record:
    record: 'example.com'
    zone_id: 'example-com'
    type: TXT
    record_data:
      - '"v=spf1 include:_spf.google.com -all"'   # A single-string TXT value
      - '"hello " "world"'    # A multi-string TXT value
   Return Values
Common return values are documented here, the following are the fields unique to this module:
| Key | Returned | Description | 
|---|---|---|
| overwrite  boolean  | success | Whether to the module was allowed to overwrite the record Sample: True | 
| record  string  | success | Fully-qualified domain name of the resource record Sample: mail.example.com. | 
| record_data  list / elements=string  | success | The resource record values Sample: ['5.6.7.8', '9.10.11.12'] | 
| state  string  | success | Whether the record is present or absent Sample: present | 
| ttl  integer  | success | The time-to-live of the resource record Sample: 300 | 
| type  string  | success | The type of the resource record Sample: A | 
| zone  string  | success | The dns name of the zone Sample: example.com. | 
| zone_id  string  | success | The Google Cloud DNS ID of the zone Sample: example-com | 
Status
- This module will be removed in version 2.0.0. [deprecated]
- For more information see DEPRECATED.
Authors
- William Albert (@walbert947)
    © 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
    https://docs.ansible.com/ansible/2.10/collections/community/general/gcdns_record_module.html