【发布时间】:2022-08-19 18:50:20
【问题描述】:
我需要帮助,因为我被一本剧本困住了 2 天。
首先,我有一个 YAML 文件,其中包含神社模板:
---
template lab:
- first_template.j2
- second_template.j2
- third_template.j2
它存在一个对每个路由器都有价值的 YAML 文件,存储在\"./yml/{{ inventory_hostname }}.yml\"
我有一个剧本 Ansible 需要使用 jinja 模板来生成.conf文件。
---
- name: Generate .conf file
hosts: my_routers
gather_facts: no
vars:
- jinja_templates: \"{{ (lookup(\'template\', \'./template_list.yml\') | from_yaml).template_lab }}\"
vars_files:
- \"./yml/{{ inventory_hostname }}.yml\"
tasks:
- name: test
debug:
msg: \"{{ jinja_templates }}\"
- name: Generate configuration files
template:
src: \"./templates/{{ jinja_templates }}\"
dest: \"./tmp/general/{{ inventory_hostname }}.conf\"
mode: \"0644\"
我播放时剧本的输出:
Could not find or access \'./templates/[\'first_template.j2\', \'second_template.j2\', \'third_template\'.j2\']\'
1:第一个问题是{ jinja_templates }}输出包含 \"[\" \"]\" 和 \"\'\" \"\'\",因此 Ansible 无法使用 Jinja 模板。
2:如何进行迭代以使用所有 jinja 模板并在单个文件中生成配置?
我知道我没有使用 Ansible\' Playbook 的正确结构!暂时是实验测试:)
谢谢