LINUX.ORG.RU
ФорумAdmin

ansible: конфиг из списка

 


0

1

Всем привет. Скорее всего глупый вопрос, но нигде не могу найти паттерн как в ansible из списка и шаблона сделать длинный конфиг? То есть, например, есть список доменов, хочу форимровать из него hosts для dnsmasq.

★★★★★

Ответ на: комментарий от thriller

Я понимаю как написать темплейт с переменными, но не понимаю как мне сгенерировать одинаковые куски конфига с переменными в одном конфиге, количество кусков в зависимости от количества элементов в списке. Можешь подкинуть пример темплейта для такой задачи?

Есть список

a 1
b 2
c 3

Нужно получить конфиг

q=a w=1
q=b w=2
q=c w=3
Если в списке убираем строчку «b 2», то ansible делает конфиг
q=a w=1
q=c w=3

autonomous ★★★★★ ()
Ответ на: комментарий от autonomous

А в чем проблема? Тут можно использовать jinja2-синтаксис, который очень похож на питоновский.

Собираешь свои переменные в список:

---
- somethingVar: [ ['a', '1'], ['b', '2'] ]

В сценарии

{% for item in somethingVar %}q={{item[0]}} w={{item[1]}}\n{% endfor %}

Могу ошибиться с синтаксисом, пишу по памяти.

Собственно для разных хостов у тебя будут разные значения somethingVar.

Или тебе нужно получить когда нет строки 'b 2' 'q=b w=0'? Тогда можно вместо списка хранить словари и использовать

{{somethingVar['b']|default('0')}}

Хотя скорее всего тут придется использовать

{% for item in ['a', 'b', 'c'] %}
q={{item}} w={% if somethingVar[item] is not defenition %}0{% else %}{{somethingVar[item]}}{% endif %}
{%endfor%}

alozovskoy ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.