community.google.gce_labels module – Create, Update or Destroy GCE Labels.
Note
This module is part of the community.google collection (version 1.0.0).
You might already have this collection installed if you are using the ansible
package.
It is not included in ansible-core
.
To check whether it is installed, run ansible-galaxy collection list
.
To install it, use: ansible-galaxy collection install community.google
.
To use it in a playbook, specify: community.google.gce_labels
.
Synopsis
Create, Update or Destroy GCE Labels on instances, disks, snapshots, etc. When specifying the GCE resource, users may specify the full URL for the resource (its ‘self_link’), or the individual parameters of the resource (type, location, name). Examples for the two options can be seen in the documentation. See https://cloud.google.com/compute/docs/label-or-tag-resources for more information about GCE Labels. Labels are gradually being added to more GCE resources, so this module will need to be updated as new resources are added to the GCE (v1) API.
Requirements
The below requirements are needed on the host that executes this module.
python >= 2.6
google-api-python-client >= 1.6.2
google-auth >= 1.0.0
google-auth-httplib2 >= 0.0.2
Parameters
Parameter |
Comments |
---|---|
The path to the JSON file associated with the service account email. |
|
A list of labels (key/value pairs) to add or remove for the resource. |
|
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. |
|
The Google Cloud Platform project ID to use. |
|
The location of resource (global, us-central1-f, etc.) |
|
The name of resource. |
|
The type of resource (instances, disks, snapshots, images) |
|
The ‘self_link’ for the resource (instance, disk, snapshot, etc) |
|
service account email |
|
service account email |
|
The state the labels should be in. Choices:
|
Notes
Note
Labels support resources such as instances, disks, images, etc. See https://cloud.google.com/compute/docs/labeling-resources for the list of resources available in the GCE v1 API (not alpha or beta).
Examples
- name: Add labels on an existing instance (using resource_url)
community.google.gce_labels:
service_account_email: "{{ service_account_email }}"
credentials_file: "{{ credentials_file }}"
project_id: "{{ project_id }}"
labels:
webserver-frontend: homepage
environment: test
experiment-name: kennedy
resource_url: https://www.googleapis.com/compute/beta/projects/myproject/zones/us-central1-f/instances/example-instance
state: present
- name: Add labels on an image (using resource params)
community.google.gce_labels:
service_account_email: "{{ service_account_email }}"
credentials_file: "{{ credentials_file }}"
project_id: "{{ project_id }}"
labels:
webserver-frontend: homepage
environment: test
experiment-name: kennedy
resource_type: images
resource_location: global
resource_name: my-custom-image
state: present
- name: Remove specified labels from the GCE instance
community.google.gce_labels:
service_account_email: "{{ service_account_email }}"
credentials_file: "{{ credentials_file }}"
project_id: "{{ project_id }}"
labels:
environment: prod
experiment-name: kennedy
resource_url: https://www.googleapis.com/compute/beta/projects/myproject/zones/us-central1-f/instances/example-instance
state: absent
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key |
Description |
---|---|
List of labels that exist on the resource. Returned: Always. Sample: [{“environment”: “test”, “environment-name”: “kennedy”, “webserver-frontend”: “homepage”}] |
|
The location of the GCE resource. Returned: Always. Sample: “us-central1-f” |
|
The name of the GCE resource. Returned: Always. Sample: “my-happy-little-instance” |
|
The type of the GCE resource. Returned: Always. Sample: “instances” |
|
The ‘self_link’ of the GCE resource. Returned: Always. |
|
state of the labels Returned: Always. Sample: “present” |
Authors
Eric Johnson (@erjohnso)