- name: restart dcache if mem low
hosts: test
tasks:
- name: getMem
shell: /bin/bash /etc/zabbix/shell/MonitorMem.sh
register: memNum
- name: restart dcache if mem low
shell: killall -9 dcache
when: memNum < 3
MonitorMem.sh返回一个表示空闲内存的num(一个整数),我想在何时使用该选项来决定是否执行重启操作。但每次我运行该剧本时,它都会跳过重启操作。请先帮我一下。
答案 0 :(得分:1)
shell module's文档提供了返回值的结构,关键是它返回的数据结构(dict)除其他外还包含shell命令的“标准输出”(输出) 。在返回的字典的stdout
属性中找到标准输出。 stdout_lines
属性包含相同的属性,但每一行均作为单独的数组条目。
我还添加了一个int
Jinja过滤器,可将字符串值转换为整数。
- name: restart dcache if mem low
hosts: test
tasks:
- name: getMem
shell: /bin/bash /etc/zabbix/shell/MonitorMem.sh
register: memNum
- name: restart dcache if mem low
shell: killall -9 dcache
when: memNum.stdout|int < 3