Templates Ansible:如何评估一个模板并将评估后的模板放入另一个模板?
我们有一个场景,我们必须用另一个模板文件填充最终的模板文件 概念参考信息保存在一个CSV文件中,该文件获得了联系点和升级点的详细信息Templates Ansible:如何评估一个模板并将评估后的模板放入另一个模板?,templates,ansible,Templates,Ansible,我们有一个场景,我们必须用另一个模板文件填充最终的模板文件 概念参考信息保存在一个CSV文件中,该文件获得了联系点和升级点的详细信息 #csv incident_type,support_team,support_email server_down,linux_group,linux@sample.com server_crash,vmware_group,vm@sample.com 然后必须填充联系人详细信息模板。联系人组的模板类似于 #contacts_details.template.j
#csv
incident_type,support_team,support_email
server_down,linux_group,linux@sample.com
server_crash,vmware_group,vm@sample.com
然后必须填充联系人详细信息模板。联系人组的模板类似于
#contacts_details.template.j2
| Item | Value |
|---|---|
| incident_type | {{incident_type}} |
| support_team | {{support_team}} |
| support_email | {{support_email}} |
然后这个模板对象必须填充主剧本,以便调用操作
#callout.playbook.j2
some stuff already there
{{contacts_details}}
因此,Ansible的最终目标是进行填充
- “包含详细信息”模板
- 用{{contacts_details}中的填充值填充callout.playbook
- name: filltemplates contacts_details
template:
src: contacts_details.template.j2
dest: contacts_details.template
- name: filltemplates callout
template:
src: callout.playbook.j2
dest: callout.playbook
但它在“callout”处失败,因为它无法替换{{{contacts\u details}}
无论如何,我可以确保第一个模板迭代被保存到第二个模板替换中吗
预期的最终结果是服务器停机类型警报为:
#My Nice Playbook
some stuff already there
| Item | Value |
|---|---|
| incident_type | server_down |
| support_team | linux_group |
| support_email | linux@sample.com |
如下所示
---
- name: Read a template and Put into another template
hosts: localhost
gather_facts: no
tasks:
- name: "show templating results"
set_fact:
contact_details: "{{ lookup('template', './templates/04_contact_details.j2') }}"
vars:
name: "bob"
email: "bob@bob.com"
phone: "12345"
- name: "Update final template"
template:
src: "./templates/04_main_callout.md.j2"
dest: "/tmp/main_callout.md"
mode: preserve
模板在哪里
04_contact_details.j2
| Key | Value |
|---|---|
| name | {{name}} |
| email | {{email}} |
| phone | {{phone}} |
主模板是
04_main_callout.md.j2
# Sample markdown
## aim is to fill up contact details automatically from another template
{{contact_details}}
我猜,使用类似于
-set_-fact:contact_-details:“{{lookup(“template”,“contact_-details.template.j2”)}”
的工具,您可以将它写到contact_-details.template
中,并将其提供给callout.playbook
谢谢您的提示。我会尽量让你知道/记下答案。