我正在尝试编写一个在linux主机上运行的进程数不等于2时显示失败的剧本。以下的playbook工作,但有没有更好的方法呢?比如是否有任何特定的Ansible模块来检查进程linux主机?
---
- hosts: web
become: yes
become_method: su
become_user: webuser
tasks:
- name: process check
shell: ps -ef|grep -i etas|grep -v grep|wc -l
register: command_result
failed_when: "'2' not in command_result.stdout"
答案 0 :(得分:3)
你的Ansible版本是什么?没有Ansible模块可以计算Linux中的进程数。您可以通过以下方式使其可读:
tasks:
- name: process check
shell: pgrep etas | wc -l
register: command_result
failed_when: command_result.stdout|int != 2