尝试了一下使用Ansible成功发送邮件

继之前的SHELL、PYTHON脚本之后,使用ANSIBLE史无前例的成功发了个MAIL,命令如下:

ansible HOSTINFO  -mmail -a 'host=smtp.exmail.qq.com port=465 secure=starttls [email protected] password=UrPwdInSecure [email protected]  [email protected] subject=sendByAnsibleCMD body="this is a mail send from ansible cmd" '

一开始看到有这个模块仅仅是想试试,所以并未使用YML文本配置,只是把必要参数集成到了一条简单的命令搞定了,它的mail模块还有很多参数,设计者想的很周到,这个东东不愧是自动化运维任务编排的首选工具。。。

2 个赞

比python那个简洁很多了

补充个剧本,如果批量操作中需要可摘抄下来使用,
如果临时使用或融入其它脚本中调用还是前面的一条命令比较简单

$cat t.yml 
---
- hosts: HOSTINFO
  remote_user: root
  tasks:
  - name: sendMail
    mail:
     host=smtp.exmail.qq.com 
     port=465 
     secure=starttls 
     [email protected] 
     password=UrPwdInSecure 
     [email protected]  
     [email protected] 
     subject=sendByAnsibleYML 
     body="this is a mail send from ansible yml" 
...

它的使用方法就是传给ansible-playbook, 成功的调用:

└──╼ $sudo ansible-playbook t.yml 
 _____________________
< PLAY [HOSTINFO] >
 ---------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

 ________________________
< TASK [Gathering Facts] >
 ------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

ok: [HOSTINFO]
 _________________
< TASK [sendMail] >
 -----------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

ok: [HOSTINFO]
 ____________
< PLAY RECAP >
 ------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

HOSTINFO               : ok=2    changed=0    unreachable=0    failed=0   


如果需要增加附件,只需要在yml或命令中增加一个attach参数带上文件路径即可:
attatch=/root/anaconda-ks.cfg

很方便处理其它脚本生成的结果文件,效果是这个样子的:
image

相关mail的帮助文档: Ansible Mail Module

1 个赞

服务器资源由ZeptoVM赞助

Partners Wiki Discord