Skip to content

ansible-collections/google.cloud

Google Cloud Platform Ansible Collection

This collection provides a series of Ansible modules and plugins for interacting with the Google Cloud Platform

Description

The google.cloud collection provides a way to automate provisioning, configuration, and management of Google Cloud resources using Ansible playbooks. This collection includes modules for managing various Google Cloud services such as Compute Engine instances, Cloud Storage buckets, Cloud SQL instances, and more.

Resources Supported

  • App Engine FirewallRule (gcp_appengine_firewall_rule, gcp_appengine_firewall_rule_info)
  • BigQuery Dataset (gcp_bigquery_dataset, gcp_bigquery_dataset_info)
  • BigQuery Table (gcp_bigquery_table, gcp_bigquery_table_info)
  • Cloud Bigtable Instance (gcp_bigtable_instance, gcp_bigtable_instance_info)
  • Cloud Build Trigger (gcp_cloudbuild_trigger, gcp_cloudbuild_trigger_info)
  • Cloud Functions CloudFunction (gcp_cloudfunctions_cloud_function, gcp_cloudfunctions_cloud_function_info)
  • Cloud Scheduler Job (gcp_cloudscheduler_job, gcp_cloudscheduler_job_info)
  • Cloud Tasks Queue (gcp_cloudtasks_queue, gcp_cloudtasks_queue_info)
  • Compute Engine Address (gcp_compute_address, gcp_compute_address_info)
  • Compute Engine Autoscaler (gcp_compute_autoscaler, gcp_compute_autoscaler_info)
  • Compute Engine BackendBucket (gcp_compute_backend_bucket, gcp_compute_backend_bucket_info)
  • Compute Engine BackendService (gcp_compute_backend_service, gcp_compute_backend_service_info)
  • Compute Engine RegionBackendService (gcp_compute_region_backend_service, gcp_compute_region_backend_service_info)
  • Compute Engine Disk (gcp_compute_disk, gcp_compute_disk_info)
  • Compute Engine Firewall (gcp_compute_firewall, gcp_compute_firewall_info)
  • Compute Engine ForwardingRule (gcp_compute_forwarding_rule, gcp_compute_forwarding_rule_info)
  • Compute Engine GlobalAddress (gcp_compute_global_address, gcp_compute_global_address_info)
  • Compute Engine GlobalForwardingRule (gcp_compute_global_forwarding_rule, gcp_compute_global_forwarding_rule_info)
  • Compute Engine HttpHealthCheck (gcp_compute_http_health_check, gcp_compute_http_health_check_info)
  • Compute Engine HttpsHealthCheck (gcp_compute_https_health_check, gcp_compute_https_health_check_info)
  • Compute Engine HealthCheck (gcp_compute_health_check, gcp_compute_health_check_info)
  • Compute Engine InstanceTemplate (gcp_compute_instance_template, gcp_compute_instance_template_info)
  • Compute Engine Image (gcp_compute_image, gcp_compute_image_info)
  • Compute Engine Instance (gcp_compute_instance, gcp_compute_instance_info)
  • Compute Engine InstanceGroup (gcp_compute_instance_group, gcp_compute_instance_group_info)
  • Compute Engine InstanceGroupManager (gcp_compute_instance_group_manager, gcp_compute_instance_group_manager_info)
  • Compute Engine RegionInstanceGroupManager (gcp_compute_region_instance_group_manager, gcp_compute_region_instance_group_manager_info)
  • Compute Engine InterconnectAttachment (gcp_compute_interconnect_attachment, gcp_compute_interconnect_attachment_info)
  • Compute Engine Network (gcp_compute_network, gcp_compute_network_info)
  • Compute Engine NetworkEndpointGroup (gcp_compute_network_endpoint_group, gcp_compute_network_endpoint_group_info)
  • Compute Engine NodeGroup (gcp_compute_node_group, gcp_compute_node_group_info)
  • Compute Engine NodeTemplate (gcp_compute_node_template, gcp_compute_node_template_info)
  • Compute Engine RegionAutoscaler (gcp_compute_region_autoscaler, gcp_compute_region_autoscaler_info)
  • Compute Engine RegionDisk (gcp_compute_region_disk, gcp_compute_region_disk_info)
  • Compute Engine RegionUrlMap (gcp_compute_region_url_map, gcp_compute_region_url_map_info)
  • Compute Engine RegionHealthCheck (gcp_compute_region_health_check, gcp_compute_region_health_check_info)
  • Compute Engine ResourcePolicy (gcp_compute_resource_policy, gcp_compute_resource_policy_info)
  • Compute Engine Route (gcp_compute_route, gcp_compute_route_info)
  • Compute Engine Router (gcp_compute_router, gcp_compute_router_info)
  • Compute Engine Snapshot (gcp_compute_snapshot, gcp_compute_snapshot_info)
  • Compute Engine SslCertificate (gcp_compute_ssl_certificate, gcp_compute_ssl_certificate_info)
  • Compute Engine Reservation (gcp_compute_reservation, gcp_compute_reservation_info)
  • Compute Engine SslPolicy (gcp_compute_ssl_policy, gcp_compute_ssl_policy_info)
  • Compute Engine Subnetwork (gcp_compute_subnetwork, gcp_compute_subnetwork_info)
  • Compute Engine TargetHttpProxy (gcp_compute_target_http_proxy, gcp_compute_target_http_proxy_info)
  • Compute Engine TargetHttpsProxy (gcp_compute_target_https_proxy, gcp_compute_target_https_proxy_info)
  • Compute Engine RegionTargetHttpProxy (gcp_compute_region_target_http_proxy, gcp_compute_region_target_http_proxy_info)
  • Compute Engine RegionTargetHttpsProxy (gcp_compute_region_target_https_proxy, gcp_compute_region_target_https_proxy_info)
  • Compute Engine TargetInstance (gcp_compute_target_instance, gcp_compute_target_instance_info)
  • Compute Engine TargetPool (gcp_compute_target_pool, gcp_compute_target_pool_info)
  • Compute Engine TargetSslProxy (gcp_compute_target_ssl_proxy, gcp_compute_target_ssl_proxy_info)
  • Compute Engine TargetTcpProxy (gcp_compute_target_tcp_proxy, gcp_compute_target_tcp_proxy_info)
  • Compute Engine TargetVpnGateway (gcp_compute_target_vpn_gateway, gcp_compute_target_vpn_gateway_info)
  • Compute Engine UrlMap (gcp_compute_url_map, gcp_compute_url_map_info)
  • Compute Engine VpnTunnel (gcp_compute_vpn_tunnel, gcp_compute_vpn_tunnel_info)
  • Google Kubernetes Engine Cluster (gcp_container_cluster, gcp_container_cluster_info)
  • Google Kubernetes Engine NodePool (gcp_container_node_pool, gcp_container_node_pool_info)
  • Cloud DNS ManagedZone (gcp_dns_managed_zone, gcp_dns_managed_zone_info)
  • Cloud DNS ResourceRecordSet (gcp_dns_resource_record_set, gcp_dns_resource_record_set_info)
  • Filestore Instance (gcp_filestore_instance, gcp_filestore_instance_info)
  • Cloud IAM Role (gcp_iam_role, gcp_iam_role_info)
  • Cloud IAM ServiceAccount (gcp_iam_service_account, gcp_iam_service_account_info)
  • Cloud IAM ServiceAccountKey (gcp_iam_service_account_key, gcp_iam_service_account_key_info)
  • Cloud Key Management Service KeyRing (gcp_kms_key_ring, gcp_kms_key_ring_info)
  • Cloud Key Management Service CryptoKey (gcp_kms_crypto_key, gcp_kms_crypto_key_info)
  • Cloud (Stackdriver) Logging Metric (gcp_logging_metric, gcp_logging_metric_info)
  • ML Engine Model (gcp_mlengine_model, gcp_mlengine_model_info)
  • ML Engine Version (gcp_mlengine_version, gcp_mlengine_version_info)
  • Cloud Pub/Sub Topic (gcp_pubsub_topic, gcp_pubsub_topic_info)
  • Cloud Pub/Sub Subscription (gcp_pubsub_subscription, gcp_pubsub_subscription_info)
  • Memorystore (Redis) Instance (gcp_redis_instance, gcp_redis_instance_info)
  • Resource Manager Project (gcp_resourcemanager_project, gcp_resourcemanager_project_info)
  • Runtime Configurator Config (gcp_runtimeconfig_config, gcp_runtimeconfig_config_info)
  • Runtime Configurator Variable (gcp_runtimeconfig_variable, gcp_runtimeconfig_variable_info)
  • Service Usage Service (gcp_serviceusage_service, gcp_serviceusage_service_info)
  • Cloud Source Repositories Repository (gcp_sourcerepo_repository, gcp_sourcerepo_repository_info)
  • Cloud Spanner Instance (gcp_spanner_instance, gcp_spanner_instance_info)
  • Cloud Spanner Database (gcp_spanner_database, gcp_spanner_database_info)
  • Cloud SQL Instance (gcp_sql_instance, gcp_sql_instance_info)
  • Cloud SQL Database (gcp_sql_database, gcp_sql_database_info)
  • Cloud SQL User (gcp_sql_user, gcp_sql_user_info)
  • Cloud SQL SslCert (gcp_sql_ssl_cert, gcp_sql_ssl_cert_info)
  • Cloud Storage Bucket (gcp_storage_bucket, gcp_storage_bucket_info)
  • Cloud Storage BucketAccessControl (gcp_storage_bucket_access_control, gcp_storage_bucket_access_control_info)
  • Cloud Storage DefaultObjectACL (gcp_storage_default_object_acl, gcp_storage_default_object_acl_info)
  • Cloud TPU Node (gcp_tpu_node, gcp_tpu_node_info)
  • Secret Manager (gcp_secret_manager)

Requirements

Ansible version compatibility

This collection is tested to work with Ansible 2.16+.

Python version compatibility

This collection is tested with to work Python 3.10+

Installation

Before using this collection, you need to install it with the Ansible Galaxy command-line tool:

ansible-galaxy collection install google.cloud

You can also include it in a requirements.yml file and install it with ansible-galaxy collection install -r requirements.yml, using the format:

collections:
  - name: google.cloud

Note that if you install any collections from Ansible Galaxy, they will not be upgraded automatically when you upgrade the Ansible package. To upgrade the collection to the latest available version, run the following command:

ansible-galaxy collection install google.cloud --upgrade

You can also install a specific version of the collection, for example, if you need to downgrade when something is broken in the latest version (please report an issue in this repository). Use the following syntax to install version 1.5.1:

ansible-galaxy collection install google.cloud:==1.5.1

See using Ansible collections for more details.

If you are using the google.cloud collection locally you will likely need to install the gcloud command line tool in order to perform authentication The easiest way to authenticate to GCP is using application default credentials.

Once you have installed gcloud and performed basic initialization (via gcloud init) run:

gcloud auth application-default login

For more authentication options see the Use Cases section below.

Use Cases

The google.cloud collection supports multiple methods to authenticate to Google Cloud:

  • Application Default Credentials (auth_kind: "application")
  • Service Account Key (auth_kind: "serviceaccount")
  • OAuth Credentials (auth_kind: "accesstoken")

To use Application default credentials configured using gcloud:

- name: Create a Google Cloud Storage bucket
  google.cloud.gcp_storage_bucket:
    name: "{{ bucket_name }}"
    project: "{{ gcp_project }}"
    auth_kind: "application"
    state: present
- name: Delete a Google Cloud Storage bucket
  google.cloud.gcp_storage_bucket:
    name: "{{ bucket_name }}"
    project: "{{ gcp_project }}"
    auth_kind: "application"
    state: absent

For unattended operation it is common to use service account keys. To use these, set auth_kind to serviceaccount and service_account_file to the path to the file containing your service account key.

- name: Create a Google Cloud Storage bucket
  google.cloud.gcp_storage_bucket:
    name: "{{ bucket_name }}"
    project: "{{ gcp_project }}"
    auth_kind: "serviceaccount"
    service_account_file: "{{ gcp_cred_file }}"
    state: present
- name: Delete a Google Cloud Storage bucket
  google.cloud.gcp_storage_bucket:
    name: "{{ bucket_name }}"
    project: "{{ gcp_project }}"
    auth_kind: "serviceaccount"
    service_account_file: "{{ gcp_cred_file }}"
    state: absent

In place of service_account_file you may instead use service_account_contents which contains the service account key directly.

Read the best practices for managing service account keys to learn how to keep your service account key and your GCP resources safe.

Common options can also be set using environment variables, simplifying automated operations. The available variables are:

export GCP_PROJECT=<project id>
export GCP_AUTH_KIND=<application|serviceaccount|accesstoken>
export GCP_SERVICE_ACCOUNT_FILE=</path/to/service/account/key.json>
export GCP_SERVICE_ACCOUNT_CONTENTS=<alternative that stores the service account key in the env var>
export GCP_SCOPES=<requested scopes such as https://www.googleapis.com/auth/compute>
export GCP_REGION=<default region such as us-central1>
export GCP_ZONE=<default zone such as us-central1-a>

Testing

The google.cloud collection is tested with the two most recent releases of Ansible with the versions of Python supported by those releases. The current version matrix can be seen in the GitHub action configuration.

To learn how to run the tests locally, read CONTRIBUTING.md.

Support

There are several avenues of commuication available for google.cloud users:

  • Join the Ansible forum:

    • Get Help: get help or help others. Please use appropriate tags, for example cloud.
    • Social Spaces: gather and interact with fellow enthusiasts.
    • News & Announcements: track project-wide announcements including social events.
  • The Ansible Bullhorn newsletter: used to announce releases and important changes.

For more information about communication, see the Ansible communication guide.

Release Notes

See CHANGELOG.md.

Related Information

Documentation for Google Cloud Platform can be found at cloud.google.com.

Documentation for google.cloud resources can be found on the Ansible Galaxy site.

License Information

GNU General Public License v3.0 or later.

See LICENSE to view the full text.