Forge Home


A task to generate Bolt inventory from Google Cloud compute engine instances




10,989 latest version

5.0 quality score

Version information

  • 0.3.0 (latest)
  • 0.2.0
  • 0.1.3
  • 0.1.1
  • 0.1.0
released Mar 25th 2021
This version is compatible with:
  • Puppet Enterprise 2021.3.x, 2021.2.x, 2021.1.x, 2021.0.x, 2019.8.x, 2019.7.x, 2019.5.x, 2019.4.x, 2019.3.x, 2019.2.x, 2019.1.x, 2019.0.x, 2018.1.x, 2017.3.x, 2017.2.x, 2016.4.x
  • Puppet >= 4.10.0 < 8.0.0
  • CentOS

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'puppetlabs-gcloud_inventory', '0.3.0'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add puppetlabs-gcloud_inventory
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install puppetlabs-gcloud_inventory --version 0.3.0

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.



puppetlabs/gcloud_inventory — version 0.3.0 Mar 25th 2021


Table of Contents

  1. Description
  2. Requirements
  3. Usage


This module includes a Bolt plugin to generate targets from Google Cloud compute engine instances.



The plugin generates targets from a list of compute engine instances for a specific project and zone. It supports the following fields:

Option Type Description
credentials String A path to the service account credentials file. Accepts either an absolute path or a path relative to the Bolt project directory. Optional.
client_email String The Google Cloud client email to use. Optional.
token_uri String The Google Cloud token uri to use. Optional.
private_key String The Google Cloud private key to use. Optional.
project String The name of the project to lookup instances from. Required.
target_mapping Hash A hash of target attributes to populate with resource values. Must include either name or uri. Required.
zone String The name of the zone to lookup instances from. Required.


The plugin supports loading a credentials file from a path specified in either the credentials option or the GOOGLE_APPLICATION_CREDENTIALS environment variable. A path specified in the credentials ption or credentials specified in the client_email, token_uri and private_key fields will take precedence over a path specified in the GOOGLE_APPLICATION_CREDENTIALS environment variable. If a credentials file is not specified, or the path does not point to a valid credentials file, the plugin will error.

The credentials file must contain a JSON object with at least the following fields:

  • client_email
  • private_key
  • token_uri

Target mapping

The target_mapping field accepts a hash of target attributes to populate with resource values. The hash of target attributes is formatted similarly to a target specification in an inventory file. Resource values are accessed using dot notation. For example, you can access an instance's public IP address using networkInterfaces.0.accessConfigs.0.natIP.


# inventory.yaml
  - name: google
      _plugin: gcloud_inventory
      project: my_project
      zone: us-west1-b
      credentials: ~/.google/credentials.json
        name: name
        uri: networkInterfaces.0.accessConfigs.0.natIP
        vars: labels