ansible playbook / shell命令的电子邮件结果?

时间:2014-09-30 18:38:05

标签: linux ansible

我希望通过电子邮件发送一份ansible playbook的结果

我正在使用debug:var = results.stdout_lines来显示shell命令的标准输出,但我想将其捆绑并通过电子邮件发送给自己。

我觉得必须有一个内置的方法来做到这一点,但我找不到任何东西?

我的剧本看起来像

- name: run command
      shell: echo `hostname`
      register: results
      when: ansible_os_family == "Debian"

    - debug: var=results.stdout_lines

将在playbook运行期间打印命令的stdout结果,但我想将其发送给自己。

我尝试通过电子邮件发送已注册的变量'results',但它失败了

- local_action: mail
                subject='Maricache backup report'
                body={{ results.stdout_lines }}
                to='partytime@gmail.com'

1 个答案:

答案 0 :(得分:0)

尝试一下,在某处找到解决方案,它也对我有用。

- name: logs result
  shell: grep "`date '+%b.%d'`" /var/log/commands.log
  register: command_log

- name: mail result
  mail:
    to: helloworld@xyz.com
    subject: "command logs for today"
    body: "{{ command_log.stdout }}"
  when: command_log.stdout