考虑以下 ansible gcp_compute库存插件的配置:
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
这对我有用,并将按预期将所有主机放在 gcp 组中。目前为止,一切都好。
但是,我想根据名称中出现的某些子字符串对我的机器进行分组。我该怎么做?
或者,更广泛地说,如何在groups
字典中找到可用于 jinja 表达式的各种变量的描述?
可用的变量是响应中每个项目中可用的键,如下所示: https://cloud.google.com/compute/docs/reference/rest/v1/instances/list
所以,对于我的例子:
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
为了完成准确的答案,根据参数"filter"中名称中出现的某些子字符串来选择机器,您可以添加例如这样的表达式:
filters:
- 'name = gke*'
此值仅列出其名称以 gke 开头的实例。