代码之家  ›  专栏  ›  技术社区  ›  Marcin

Ansible gcp_compute inventory插件-基于计算机名称的组

  •  0
  • Marcin  · 技术社区  · 6 年前

    请考虑以下针对ansible的gcp_compute inventory插件的配置:

    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 字典?

    2 回复  |  直到 6 年前
        1
  •  1
  •   Marcin    6 年前

    可用变量是响应中每个项目中可用的键,如下所示: 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
    
        2
  •  1
  •   HopsHops    6 年前

    为了完成您的准确答案,为了根据参数“filter”中名称中出现的某些子字符串选择机器,您可以添加一个表达式,例如,如下所示:

    filters:
      - 'name = gke*' 
    

    这个值只列出名称以gke开头的实例。