Marcin
Marcin

Reputation: 49886

Ansible gcp_compute inventory plugin - groups based on machine names

Consider the following config for ansible's gcp_compute inventory plugin:

plugin: gcp_compute
projects:
  - myproj
scopes:
  - https://www.googleapis.com/auth/compute
filters:
  - ''
groups:
  connect: '"connect" in list"'
  gcp: 'True'
auth_kind: serviceaccount
service_account_file: ~/.gsutil/key.json

This works for me, and will put all hosts in the gcp group as expected. So far so good.

However, I'd like to group my machines based on certain substrings appearing in their names. How can I do this?

Or, more broadly, how can I find a description of the various variables available to the jinja expressions in the groups dictionary?

Upvotes: 0

Views: 1233

Answers (2)

HopsHops
HopsHops

Reputation: 75

For complete your accurate answer, for choose the machines based on certain substrings appearing in their names in the parameter 'filter' you can add a, for example, expression like this:

filters:
  - 'name = gke*' 

This value list only the instances that their name start by gke.

Upvotes: 1

Marcin
Marcin

Reputation: 49886

The variables available are the keys available inside each of the items in the response, as listed here: https://cloud.google.com/compute/docs/reference/rest/v1/instances/list

So, for my example:

plugin: gcp_compute
projects:
  - myproj
scopes:
  - https://www.googleapis.com/auth/compute
filters:
  - ''
groups:
  connect: "'connect' in name"
  gcp: 'True'
auth_kind: serviceaccount
service_account_file: ~/.gsutil/key.json

Upvotes: 1

Related Questions