New in version 2.2.
The below requirements are needed on the host that executes this module.
Parameter | Choices/Defaults | Comments |
---|---|---|
credentials_file | The path to the JSON file associated with the service account email. | |
overwrite bool |
| Whether an attempt to overwrite an existing record should succeed or fail. The behavior of this option depends on state. If state is present and overwrite is True , this module will replace an existing resource record of the same name with the provided record_data. If state is present and overwrite is False , this module will fail if there is an existing resource record with the same name and type, but different resource data.If state is absent and overwrite is True , this module will remove the given resource record unconditionally. If state is absent and overwrite is False , this module will fail if the provided record_data do not match exactly with the existing resource record's record_data. |
pem_file | 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 | The Google Cloud Platform project ID to use. | |
record required | The fully-qualified domain name of the resource record. aliases: name | |
record_data | The record_data to use for the resource record.
record_data must be specified if state is present or overwrite is True , 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 | The e-mail address for a service account with access to Google Cloud DNS. | |
state |
| Whether the given resource record should or should not be present. |
ttl | Default: 300 | The amount of time in seconds that a resource record will remain cached by a caching resolver. |
type required |
| The type of resource record to add. |
zone | 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 | 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. |
Note
# Create an A record. - gcdns_record: record: 'www1.example.com' zone: 'example.com' type: A value: '1.2.3.4' # Update an existing record. - gcdns_record: record: 'www1.example.com' zone: 'example.com' type: A overwrite: true value: '5.6.7.8' # Remove an A record. - gcdns_record: record: 'www1.example.com' zone_id: 'example-com' state: absent type: A value: '5.6.7.8' # Create a CNAME record. - gcdns_record: record: 'www.example.com' zone_id: 'example-com' type: CNAME value: 'www.example.com.' # Note the trailing dot # Create an MX record with a custom TTL. - gcdns_record: record: 'example.com' zone: 'example.com' type: MX ttl: 3600 value: '10 mail.example.com.' # Note the trailing dot # Create multiple A records with the same name. - 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' # Change the value of an existing record with multiple record_data. - 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' # Safely remove a multi-line record. - 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' # Unconditionally remove a record. - gcdns_record: record: 'api.example.com' zone_id: 'example-com' state: absent overwrite: true # overwrite is true, so no values are needed type: A # Create an AAAA record - gcdns_record: record: 'www1.example.com' zone: 'example.com' type: AAAA value: 'fd00:db8::1' # Create a PTR record - 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. # Create an NS record - 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.' # Create a TXT record - 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
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 | 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 int | 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 |
This module is flagged as preview which means that it is not guaranteed to have a backwards compatible interface.
This module is flagged as community which means that it is maintained by the Ansible Community. See Module Maintenance & Support for more info.
For a list of other modules that are also maintained by the Ansible Community, see here.
Hint
If you notice any issues in this documentation you can edit this document to improve it.
© 2012–2018 Michael DeHaan
© 2018 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.7/modules/gcdns_record_module.html