В данном примере хочу получить строку вида
key_1 1.1,key_2 2.2
Явно это как-то просто должно делаться, но не могу нагуглить и придумать.
---
- name: dict to list
hosts: localhost
gather_facts: false
vars:
plugins:
- key_1: 1.1
- key_2: 2.2
tasks:
- name: Print
debug:
msg: "{{ plugins }}"
- name: Debug
debug:
msg: "{{ plugins | ??? | join(',') }}"
а зачем тут дробить ключ и версию в плугинах?
В роли для графаны, в переменных хочу перечислить плагины, дабы удобно их было обновлять. Потом их нужно завернуть в переменную окружения GF_INSTALL_PLUGINS=grafana-clock-panel 1.0.1,grafana-simple-json-datasource 1.3.5 чтобы скормить графане.
GF_INSTALL_PLUGINS: "{{ grafana_docker__config_plugins | join(',') }}"
Переменная grafana_docker__config_plugins похоже из какой-то иной роли. Нее, это не то, я своё пишу.
с чего вы решили? о_0 это просто список
Нее это не то. У плагинов нужно версии указывать. Вот пример, как я хочу сделать https://t.me/pro_ansible/254294
Какой же вы ленивый... Посмотрите доку, никакие подчеркивания между версией не нужны, просто через пробел указываете версию! https://grafana.com/docs/grafana/latest/setup-grafana/installation/docker/#install-official-and-community-grafana-plugins
ааа, пардон, увидел что вы хотите сделать
Пожалуйста, будьте внимательнее. Я о подчёркиваниях в версии ни чего не писал. Просьба перечитать моё исходное сообщение и в дальнейшем не приписывать мне выдуманного Вами.
plugins | map('join', ' ') | join(',')
Фильтр map в первый раз видите?
К такому варианту я тоже приходил, но это не то. Выбираются только ключи и получается key_1,key_2 а должно быть key_1 1.1,key_2 2.2
А, понял. Момент, щас гляну
Не заморачивайтесь, спасибо. Я решил отказаться от от списка словарей в пользу списка строк. Визуально разница не большая и проблем с обработкой нет.
(зарядка для ума) очень может быть, что это реализуется через json_query. он сможет словарь в список перемолоть
Обсуждают сегодня