ListViews
结果显示:
- name: check process is running or not
shell: ps -ef |grep abcd |grep defg
register: result
ignore_errors: yes
- debug: msg="{{ result.stdout }}"
但如果我登录该机器直接运行:
TASK [debug] ***********
ok: [52.35.61.9] => {
"msg": "ec2-user 28932 28931 0 17:42 pts/0 00:00:00 /bin/sh -c ps
-ef |grep abcd |grep defg"
}
我什么也看不见,因为这个过程已经停止了。
在ansible中我需要检查进程是否已经运行。然后只有在不是的情况下运行它。这就是为什么我使用shell和ps(命令不支持管道所以我必须使用shell)。但是从ansible调用shell总是显示出来。即使这个过程没有运行。
如何使它不显示任何内容,与在本地运行ps时相同?
答案 0 :(得分:1)
尝试将字符括在方括号中,如下所示:
shell: ps -ef |grep [a]bcd |grep defg
这只是让grep
忽略ps
输出中的那一行。