ansible - 发送电子邮件任务失败并显示错误

时间:2021-03-09 05:18:53

标签: ansible

我的 ansible 版本是 2.4

我的目的是发送一封电子邮件,其中包含所有正常运行时间超过 100 天的服务器。仅当清单中的所有服务器均可访问时,以下脚本才能正常工作。

如果清单中的任何服务器不可访问,发送邮件任务将失败并显示以下错误:

<块引用>

任务[发送邮件]


致命:[本地主机]:失败! => {"msg": "该任务包含一个带有未定义变量的选项。错误是:'dict object' 没有属性 'stdout'\n\n错误似乎在 '/ansible/uptime.yml' : 第 26 行,第 10 列,但可能\n在文件中的其他位置,具体取决于确切的语法问题。\n\n有问题的行似乎是:\n\n 任务:\n - 名称:发送邮件 \n ^ 此处\ n\neexception type: \neexception: 'dict object' 没有属性 'stdout'"}

tasks:

  - name: check uptime
    ignore_errors: yes
    shell: uptime |awk '{print $3}'
    register: up_time

  - name: send mail
    hosts: localhost
    gather_facts: no
    become: no

    tasks:
       - name: send mail
         mail:
           host: relayserver
           port: 25
           from: user@company.com
           to: manager@company.com
           subject: uptime
           body: |-
             {% for server, servervars in hostvars.items() %}
             {% if servervars.up_time.stdout |int >= 100 %}
                {{ server }} - {{"has"}} {{ servervars.up_time.stdout }}
             {% endif %}
             {% endfor %}
         delegate_to: localhost
         run_once: true

我需要邮件任务来忽略无法访问的服务器,并只为可访问的服务器发送邮件。

0 个答案:

没有答案