我们有一个 Ansible 脚本,可以在服务器更新时发送电子邮件。在脚本中,我想使用来自两个不同位置的变量来发送到地址。第一个位置来自库存本身,称为 owner_email,第二个位置来自角色的 vars 部分,称为 mb_addresses。在脚本中,我试图弄清楚如何设置它。相关部分是这样的:
- name: Send the report
mail:
host: our.mailserver.com
port: 25
to:
- "{{ owner_email }}"
- "{{ mb_addresses }}"
from: [email protected]
subject: Linux monthly patch results
body: "{{ lookup('file', '/depot/reports/patch/{{inventory_hostname}}_patch_report.txt') }}"
delegate_to: localhost
become: no
在 vars 部分的 main.yml 中,mb_address 是这样设置的:
mb_addresses: "[email protected],[email protected]"
问题是我收到了第一封电子邮件,但第二封被忽略了。
如果我这样设置,也会发生同样的情况:
mb_addresses: '"[email protected]" "[email protected]"'
我试过这样:
mb_addresses:
- "[email protected]"
- "[email protected]"
以这种方式完成后,不会收到任何电子邮件。
我要避免的是进入每个库存项目并添加一个库存组以接收完成电子邮件。
我错过了什么?
给定变量(无论它们来自哪里)
自行创建地址列表。比如先测试一下
给
例如,在本地主机上测试它
发送电子邮件