我正在尝试使用Jinja2模板与Ansible动态构建配置文件。
在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'}"}
我在编程方面还很陌生,所以我真的看不出我的错误在哪里...有什么线索吗?
在此先感谢您的帮助,
西蒙(Simon)
答案 0 :(得分:0)
模板内容
models:
{% for model in model_list.name %}
{{ model }}:
username: {{ model_list.user[loop.index0] }}
password: {{ model_list.pass[loop.index0] }}
{% endfor %}