Ansible查找文件变量

Ansible查找文件变量,ansible,jinja2,Ansible,Jinja2,我试图通过电子邮件发送一个模板文件,该文件在html中有变量,例如{{user\u name},html在我的邮件客户端中正确呈现,但是{{user\u name}}无法解析并显示为字符串{user\u name} - name: Send e-mail to a bunch of users, attaching files mail: host: mail.server.com subtype: html subject: email template b

我试图通过电子邮件发送一个模板文件,该文件在html中有变量,例如
{{user\u name}
,html在我的邮件客户端中正确呈现,但是
{{user\u name}}
无法解析并显示为字符串
{user\u name}

- name: Send e-mail to a bunch of users, attaching files
  mail:
    host: mail.server.com
    subtype: html
    subject: email template
    body: '{{ lookup("file", "roles/binding/templates/email.j2") }}'
    to: "{{ user_email }}"
示例输出

Hi {{ user_name }} ....
期望输出

Hi John Doe

关于我如何解决这个问题有什么想法吗

您可以在发送邮件的任务之前添加一个
模板
任务来处理文件。例如:

- name: prepare mail body from template
  template:
    src: email.j2
    dest: /tmp/email.out
变量替换将在此任务中进行

然后,您将发送包含您已经准备好的任务的邮件,但是
正文
必须指向
/tmp/mail.out
文件


只需将
文件
查找插件替换为
正文
参数中的:

body: '{{ lookup("template", "roles/binding/templates/email.j2") }}'