目標:用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來接收值。