第一个 ansible 剧本帮助(错误检查)



我正在写我的第一个 Ansible 剧本,我有点迷茫,希望有人能指出我正确的方向。

这是我的代码:

---
- hosts: all
become: yes
tasks:
- name: check /var/log/messages
shell: "cat /var/log/messages | grep error | mailx -r xxx@xxx.com xxx@gmail.com"
ignore_errors: yes
- name: check /var/log/secure
shell: "cat /var/log/secure | grep denied | mailx -r xxx@xxx.com xxx@gmail.com"
ignore_errors: yes

我收到每个服务器的单独电子邮件,即使什么都没有,我也会收到一封空白的电子邮件。我读了一些关于处理程序的东西,如果输出为空,其中一个可以说,不要做任何事情。

您可以使用以下代码片段。致力于 ansible 2.7+ .

在做什么?

  1. 第一个任务是运行 shell 命令并将输出存储在结果中。"结果"是 Ansible 提供的标准变量。您可以在此处引用 Ansible 中的返回值。这里
  2. 第二个任务将是:根据结果是否为空,它将通过邮件发送输出
- hosts: all
become: yes
tasks:
- name: check /var/log/messages
shell: "cat /var/log/messages | grep error"
register: results
ignore_errors: yes
- name: Send mail
shell: " echo {{ results.stdout }} | mailx -r xxx@xxx.com xxx@gmail.com"
when: result.stdout == ""

相关内容

最新更新