Google cloud platform Ansible inventory gcp_计算插件下划线添加到主机组名称

Google cloud platform Ansible inventory gcp_计算插件下划线添加到主机组名称,google-cloud-platform,ansible,ansible-inventory,Google Cloud Platform,Ansible,Ansible Inventory,我正在尝试使用gcp_计算插件通过GCE标记解析ansible动态清单文件。我花了一段时间来运行插件,以便真正正确地获取主机。然而,出于某种原因,ansible清单在组名中添加了下划线前缀,即使前缀保留为空 每当我使用以下inventory.gcp.yml文件运行ansible inventory时: plugin: gcp_compute projects: - terzbx filters: keyed_groups: - key: tags['items'] auth_kind:

我正在尝试使用gcp_计算插件通过GCE标记解析ansible动态清单文件。我花了一段时间来运行插件,以便真正正确地获取主机。然而,出于某种原因,ansible清单在组名中添加了下划线前缀,即使前缀保留为空

每当我使用以下inventory.gcp.yml文件运行ansible inventory时:

plugin: gcp_compute
projects:
  - terzbx
filters:
keyed_groups:
  - key: tags['items']
auth_kind: serviceaccount
service_account_file: /root/deployment/MY_SERVICEACCOUNT.json
我收到的输出是:

 "all": {
     "children": [
         "__built_in_method_items_of_dict_object_at_0x2bc4db0_",
         "_analytics",
         "_consul_server",
         "_dashboardapi",
         "_elasticsearch",
         "_http_server",
         "_https_server",
         "_inventory",
         "_k2bq",
         "_kafka",
         "_kibana",
         "_logstash_k2bq",
         "_logstash_k2es",
         "_mysql",
         "_neo4j",
         "_ssl_offload",
         "_zookeeper",
         "ungrouped"
     ]
我希望是:

 "all": {
     "children": [
         "_built_in_method_items_of_dict_object_at_0x2bc4db0_",
         "analytics",
         "consul_server",
         "dashboardapi",
         "elasticsearch",
         "http_server",
         "https_server",
         "inventory",
         "k2bq",
         "kafka",
         "kibana",
         "logstash_k2bq",
         "logstash_k2es",
         "mysql",
         "neo4j",
         "ssl_offload",
         "zookeeper",
         "ungrouped"
     ]
以前有人遇到过这个问题吗?我能做些什么来获得期望的输出吗


提前感谢您的帮助:)

遇到同样的问题时,您应该尝试一下:

plugin: gcp_compute
projects:
  - terzbx
filters:
keyed_groups:
  - key: tags['items']
    separator: ''
auth_kind: serviceaccount
service_account_file: /root/deployment/MY_SERVICEACCOUNT.json

在ansible清单插件的init.py下找到它。在_add_host_to_keyed_group下,您将找到“prefix”和“separator”。我只是添加了一个条件,如果前缀是空白的,而不是分隔符被删除。请考虑提交一个拉请求来修复它,因为它听起来像是一个好的修复。对于第一个条目
“内置方法项…”
业务来说,这是一个双重的问题,我发现它肯定与ansible inventory插件处理这些条目的方式有关。我的第一条评论中描述了解决问题的方法。分隔符:“”将不会因此而产生任何影响(它始终添加“\u1”分隔符-即使另有说明)