Ansible在一封邮件中附加多个文件

Ansible在一封邮件中附加多个文件,ansible,email-attachments,Ansible,Email Attachments,我试图在一封邮件中附加多个文件。我必须在这封邮件中附加我的主机日志,它是动态生成的。现在我有两个主持人。动态文件在/ansible_log/10.0.0.1_log.txt和/ansible_log/10.0.0.2_log.txt中生成(依此类推)。在这里我可以发送邮件,下面是脚本: Inventory File: [logs] x.x.x.1 x.x.x.2 - name: Send e-mail to users, attaching report mail: host: x

我试图在一封邮件中附加多个文件。我必须在这封邮件中附加我的主机日志,它是动态生成的。现在我有两个主持人。动态文件在/ansible_log/10.0.0.1_log.txt和/ansible_log/10.0.0.2_log.txt中生成(依此类推)。在这里我可以发送邮件,下面是脚本:

Inventory File:
[logs]
x.x.x.1
x.x.x.2

- name: Send e-mail to users, attaching report
  mail:
    host: x.x.x.x
    port: xx
    to: "{{ mailid }}"
    subject: Server Logs
    body: Please find attached logs.
    attach:
      - /ansible_log/{{ item }}_log.txt
  delegate_to: localhost
  with_items: "{{ inventory_hostname }}"
  run_once: True
  tags: send_mail

在这里,我想发送一封邮件,在一封邮件中附加两个日志文件。如果我删除
run\u once:True
,那么它将发送两封带有两个主机日志文件的独立邮件。如果库存列表增加,那么这些日志文件邮件将轰炸用户邮箱。为了避免这种情况,我希望将所有日志文件合并到一封邮件中,并将其作为一个组发送给收件人。

您不能在那里使用循环。您必须给它一个预构建的文件列表


在运行此任务之前,您可以使用setfact任务生成文件列表。

嗨,索林,我也尝试过。-名称:将主机名添加到变量集中\u事实:主机列表:“/ansible\u log/{{inventory\u hostname}}}\u log.txt”标记:发送邮件,但它只发送了一个文件。