Проблема с циклом в шаблоне jinja2 - PullRequest
0 голосов
/ 24 сентября 2018

Я пытаюсь построить файл конфигурации динамически с помощью Ansible, используя шаблон Jinja2.

В Ansible я определил роль, в которой у меня есть шаблон и набор переменных.

Я хочу, чтобы мой выходной файл выглядел так:

  models:
    model1:
      username: user1
      password: password1
    model2:
      username: user2
      password: password2

Я определил мои переменные следующим образом:

model_list:
  name:
    - model1
    - model2
  user:
    - user1
    - user2
  pass:
    - password1
    - password2

Мой .j2 шаблон:

{% for model in vars[model_list] %}
  {{ model.name }}
    username: {{ model.user }}
    password: {{ model.pass }}
{% endfor %}

Моя книга игр довольно проста:

- name: Building config file
template:
  src: ./config.j2
  dest: my/path/config

Когда я запускаю книгу, у меня появляется следующая ошибка:

fatal: [FRADEV048]: FAILED! => {"changed": false, "msg": 
"AnsibleUndefinedVariable: dict object has no element {u'user': 
u'user1', u'name': u'model1', u'pass': u'password1'}"}

Я довольно новичок в программировании, поэтому яне понимаю, где моя ошибка ... Есть какие-нибудь подсказки?

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

Саймон

1 Ответ

0 голосов
/ 24 сентября 2018

Содержимое шаблона

models:
{% for model in model_list.name %}
    {{ model }}:
        username: {{ model_list.user[loop.index0] }}
        password: {{ model_list.pass[loop.index0] }}
{% endfor %}

Ссылка: https://stackoverflow.com/a/24959173/5439195

...