Подчеркивание плагина Ansible-inventory gcp_compute добавлено к имени группы хостов

Я пытаюсь разобрать доступный динамический файл инвентаризации по тегам GCE с помощью плагина gcp_compute. Мне потребовалось некоторое время, чтобы запустить плагин, чтобы я действительно правильно получил хосты, однако по какой-то причине ansible-inventory добавляет префикс подчеркивания к именам групп, даже если префикс оставлен пустым.

Всякий раз, когда я запускаю ansible-inventory с указанным ниже файлом inventory.gcp.yml:

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"
     ]

Кто-нибудь раньше сталкивался с этой проблемой? Что я могу сделать, чтобы получить желаемый результат?

Заранее спасибо за помощь :)


person AmirW    schedule 27.01.2019    source источник
comment
Нашел его в init .py плагина ansible inventory. В разделе _add_host_to_keyed_group вы найдете префикс и разделитель. Я просто добавил условное выражение, в котором, если префикс оставлен пустым, разделитель удаляется.   -  person AmirW    schedule 27.01.2019
comment
Пожалуйста, рассмотрите возможность отправки запроса на перенос, чтобы исправить это, поскольку это звучит как хорошее исправление. Это вдвойне верно для первой записи "built_in_method_items...", которая наверняка является ошибкой.   -  person mdaniel    schedule 27.01.2019


Ответы (1)


Наткнувшись на ту же проблему, вы должны попробовать:

plugin: gcp_compute
projects:
  - terzbx
filters:
keyed_groups:
  - key: tags['items']
    separator: ''
auth_kind: serviceaccount
service_account_file: /root/deployment/MY_SERVICEACCOUNT.json
person ppuschmann    schedule 05.04.2019
comment
Я обнаружил, что это связано с тем, как плагин ansible inventory обрабатывает эти записи. Путь к этому описан в моем первом комментарии. separator: '' не повлияет на это (он всегда добавляет разделитель _, даже если указано иное) - person AmirW; 07.04.2019