Задать вопрос
@ksvdon

Как в цикле создать список словарей в ansible?

Необходимо в Ansible создать список словарей. Что-то вроде этого:

some_list:
    - { 'a_1': '1', 'b_1': '2'}
    - { 'a_2': '1', 'b_2': '2'}


Хотелось бы при создании списка словарей организовать loop таким образом, чтобы
{ 'a': '1_{{item}}', 'b': '2_{{item}}'}
кол-во создаваемых словарей с похожим наполнением можно было регулировать увеличив range
... оказалось это целая проблема ...

Пробовал через "set_fact" - нарываюсь на такую ошибку
ERROR! failed to combine variables, expected dicts but got a 'dict' and a 'AnsibleSequence':

каким-то ещё способом в цикле засунуть число из range в создаваемый словарь не получается. Пишет, мол 'item' is undefined

Если кто-то делал что-то подобное - подскажите пожалуйста как правильно сделать.

Вот я смотрю можно изобразить что-то в этом роде
- set_fact:
    some_list: '{{ some_list|default([]) + [{"dbname": item, "dbuser": "some_info"}] }}'
  loop: "{{ range(0, 2) | list }}"

Только как рядом с item впихнуть ещё текст... Пока не пойму.
Нужно что-то вроде "текст/текст_{{item}}/текст_текст"...
  • Вопрос задан
  • 420 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 1
@MaxKozlov
.. "dbname": "text " + item + "text" ..
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы