Templates Ansible:如何评估一个模板并将评估后的模板放入另一个模板?

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文件中,该文件获得了联系点和升级点的详细信息

#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
我已经使用Ansible模板模块轻松地填充了模板

- 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
谢谢您的提示。我会尽量让你知道/记下答案。