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

摘要:
目标:用ansible定期监控各机器的磁盘空间状况和进程运行状况1)配置playbook脚本,实现对磁盘空间和特定进程运行状态的每日检查;2)通过邮件插件,把检测结果发到ops邮箱;一、playbook的配置实现monitor_ansible.yaml1---2-name:diskspace_mornitor3hosts:local4user:root5gather_facts:no6vars:7

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

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

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

一、playbook的配置实现

monitor_ansible.yaml

  1 ---
  2 -name: diskspace_mornitor
  3hosts: local
  4user: root
  5gather_facts: no
  6vars:
  7    path: /home/devops
  8 
  9tasks:
 10   -name: check diskspace
 11     shell: "df -hP|awk 'NR>1 && int($5) > 30'"
 12register: 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来接收值。

免责声明:文章转载自《ansible用playbook实现定期监控各机器磁盘和进程状态》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇jmeter压力测试50并发用户运行时长5分钟,报错java.net.BindException: Address already in use: connectAli OSS服务端签名直传并设置上传回调下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Ansible-基础

Ansible架构 Inventory 主机清单,可以对主机分组 ansible-hoc ansible的命令,适用临时场景 ansible-playbook ansible是一个场景的集合,是YAML语言 被控端: 被管理的主机 连接协议:ansible是用的ssh协议,所以被控端不需要安装额外的agent,这也是 ansible-galaxy 连...

ansible 调试 debug 一介凡人

一、debug模块 1、debug模块是Ansible Playbook中最常用的调试模块,可以在Playbook执行过程打印调试信息,特别是跟when条件语句一起使用时,可以调试特定条件下的执行过程。 比如:当变量 a 定义时,将 a 的值打印出来,当任务成功后,打印执行结果等。 msg:调试输出的消息 var:将某个任务执行的输出作为变量传递给d...

Ansible—常用模块

ansible常用模块 1)Command 可以在远程主机执行命令,默认模块,可忽略-m选项 注意: 使用command模块在远程主机执行命令中,不会经过远程主机的shell处理,在使用command模块时,如果含有例如"$VARNAME" , "<" , ">" , "|" , ";" , "&" 等符号,需要使用后面介绍的shel...

ansible debug模块学习笔记

ansible playbook可以将多个命令组合来执行,但是很多时候我们需要接收服务器的反馈,所以debug模块就非常重要了。 模块说明 调试模块,用于在调试中输出信息 常用参数:msg:调试输出的消息 var:将某个任务执行的输出作为变量传递给debug模块,debug会直接将其打印输出 verbosity:debug的级别(默认是0级,全部显示)...

ansible批量修改linux服务器密码的playbook

从网上找到批量修改Linux服务器root密码的playbook。 使用方法: 1、输入要修改的inventory组 2、按需要,在playbook中输入要修改的IP、新密码,如下: - hosts: production remote_user: root tasks: - name: change password for root...

Ansible API

一、环境说明 当前环境说明: python3.8.6 ansible2.10.5 ansible版本差异说明: ansible2.0版本前后有较大改变,鉴于当前已经到了2.10版本,不再过多说明历史2.0版本的变动。可参考文章:链接 ansible2.4,对于Inventory-->InventoryManager VariableManag...