首页 > 解决方案 > Ansible 动态库存键控组 gcp

问题描述

我正在尝试在 ansible 中创建一个清单文件,该文件根据 Google Cloud Platform 中的实例组对所有实例进行分组。

Ansible 文档给出了以下示例来根据它们的标签对实例进行分组。当我使用这个示例时,它可以工作并按标签分组显示我的实例。

keyed_groups:
  - prefix: gcp
    key: labels

但我想按它们的实例组对它们进行分组。我尝试了以下的很多变体,但都没有奏效。

keyed_groups:
  - prefix: gcp
    key: instance-groups

keyed_groups:
  - prefix: gcp
    key: compute_instance_groups

任何想法,我的问题的语法是什么?

标签: google-cloud-platformansibleansible-inventory

解决方案


主机列表由 gcp_compute ansible inventory 插件构建。此插件检查一组 Compute Engine 实例并构建一个列表。我们可以用作键的项目集在这里找到:

如果我们查看这些数据,我们不会发现 Compute Engine 知道它属于哪个(如果有)实例组。

退后一步,我们发现要创建实例组,我们首先创建一个描述实例外观的计算引擎模板。接下来,我们创建一个引用该模板的实例组。GCP 的实例组子系统似乎将组与计算引擎实例分开管理。

如果您希望能够了解计算引擎属于哪个实例组,一种解决方案是在用于创建计算引擎的模板中创建一个标签。例如:

  • instance_group:MyInstanceGroup

完成此操作后,由实例组创建并与该模板关联的计算引擎实例将具有一个名为instance_group. 此时,您可以使用 Ansible 库存插件按标签进行分组。

参考:


推荐阅读