gcp_compute – Google Cloud Compute Engine inventory source

Synopsis

  • Get inventory hosts from Google Cloud Platform GCE.
  • Uses a YAML configuration file that ends with gcp_compute.(yml|yaml) or gcp.(yml|yaml).

Requirements

The below requirements are needed on the local master node that executes this inventory.

  • requests >= 2.18.4
  • google-auth >= 1.3.0

Parameters

Parameter Choices/Defaults Configuration Comments
auth_kind
-
The type of credential used.
cache
boolean
Default:
"no"
ini entries:

[inventory]
cache = no

env:ANSIBLE_INVENTORY_CACHE
Toggle to enable/disable the caching of the inventory's source data, requires a cache plugin setup to work.
cache_connection
-
ini entries:

[inventory]
cache_connection = VALUE

env:ANSIBLE_INVENTORY_CACHE_CONNECTION
Cache connection data or path, read cache plugin documentation for specifics.
cache_plugin
-
ini entries:

[inventory]
cache_plugin = VALUE

env:ANSIBLE_INVENTORY_CACHE_PLUGIN
Cache plugin to use for the inventory's source data.
cache_timeout
integer
Default:
3600
ini entries:

[inventory]
cache_timeout = 3600

env:ANSIBLE_INVENTORY_CACHE_TIMEOUT
Cache duration in seconds
compose
dictionary
Default:
{}
create vars from jinja2 expressions
filters
-
A list of filter value pairs. Available filters are listed here https://cloud.google.com/compute/docs/reference/rest/v1/instances/list. Each additional filter in the list will act be added as an AND condition (filter1 and filter2)
groups
dictionary
Default:
{}
add hosts to group based on Jinja2 conditionals
hostnames
-
Default:
["public_ip", "private_ip", "name"]
A list of options that describe the ordering for which hostnames should be assigned. Currently supported hostnames are 'public_ip', 'private_ip', or 'name'.
keyed_groups
list
Default:
[]
add hosts to group based on the values of a variable
plugin
- / required
    Choices:
  • gcp_compute
token that ensures this is a source file for the 'gcp_compute' plugin.
projects
-
A list of projects in which to describe GCE instances.
service_account_email
-
An optional service account email address if machineaccount is selected and the user does not wish to use the default email.
service_account_file
-
The path of a Service Account JSON file if serviceaccount is selected as type.
strict
boolean
Default:
"no"
If true make invalid entries a fatal error, otherwise skip and continue
Since it is possible to use facts in the expressions they might not always be available and we ignore those errors by default.
zones
-
Default:
"all zones available to a given project"
A list of regions in which to describe GCE instances.

Examples

plugin: gcp_compute
zones: # populate inventory with instances in these regions
  - us-east1-a
projects:
  - gcp-prod-gke-100
  - gcp-cicd-101
filters:
  - machineType = n1-standard-1
  - scheduling.automaticRestart = true AND machineType = n1-standard-1

scopes:
  - https://www.googleapis.com/auth/compute
service_account_file: /tmp/service_account.json
auth_kind: serviceaccount

Status

Authors

  • UNKNOWN

Hint

If you notice any issues in this documentation you can edit this document to improve it.

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.7/plugins/inventory/gcp_compute.html