ansible用playbook实现定期监控各机器磁盘和进程状态

目标:用ansible定期监控各机器的磁盘空间状况 和进程运行状况

   1)配置playbook脚本,实现对磁盘空间 和 特定进程运行状态的每日检查;

   2)通过邮件插件,把检测结果发到ops邮箱;

一、playbook的配置实现

monitor_ansible.yaml

  1 ---
  2 - name: diskspace_mornitor
  3   hosts: local
  4   user: root
  5   gather_facts: no
  6   vars:
  7    path: /home/devops
  8 
  9   tasks:
 10   - name: check diskspace
 11     shell: "df -hP|awk 'NR>1 && int($5) > 30'"
 12     register: check_out
 13   - debug: msg="disk space {{check_out.stdout}}"

执行结果:

[root@localhost ansible_playbook]# ansible-playbook monitor_ansible.yaml 

PLAY [diskspace_mornitor] ******************************************************

TASK [check diskspace] *********************************************************
changed: [192.168.52.101]
changed: [192.168.52.102]

TASK [debug] *******************************************************************
ok: [192.168.52.102] => {
    "msg": "disk space /dev/sda1                497M  167M  330M  34% /boot"
}
ok: [192.168.52.101] => {
    "msg": "disk space /dev/sda1                497M  167M  330M  34% /boot"
}

PLAY RECAP *********************************************************************
192.168.52.101             : ok=2    changed=1    unreachable=0    failed=0   
192.168.52.102             : ok=2    changed=1    unreachable=0    failed=0   

-------------------------------------------------

附: 遇到的问题

1、用playbook配置tasks执行命令的返回值接收问题

    单独执行 ansible命令,结果直接输出到终端;但在playbook,默认结果只输出执行的最终成败 ok 或failed,要拿到详细的命令返回值需单独定义debug或handler来接收值。

    

原文地址:https://www.cnblogs.com/mousean/p/6102105.html