2
\$\begingroup\$

I have a task which checks the status of a process running on a Linux server using a shell. The task should report as failed when the status is NOT RUNNING. The following works but is there a better way of checking the status string in the command.

  - name: check status of NC services and processes
    become: yes
    become_method: sudo
    become_user: nc
    environment:
         PATH: "{{ ncpath }}"
    shell: nco_pa_status -server yyyy -password xxxx
    register: command_result
    failed_when: >
      'RUNNING' not in command_result.stdout or
      'PENDING' in command_result.stdout or
      'WAITING' in command_result.stdout or
      'STARTING' in command_result.stdout or
      'DEAD' in command_result.stdout or
      'ERROR' in command_result.stdout

  - debug:
      msg="{{ command_result.stdout }}"
    tags: nervecenter-status

command_result.stdout looks something like the one below. If any process is not running the status will have any of the following: PENDING, WAITING, STARTING, DEAD, ERROR.

 -------------------------------------------------------------------------------
 Service Name         Process Name         Hostname   User      Status      PID
 -------------------------------------------------------------------------------
 Core                 ObjectServer         xxxx      nco       RUNNING    1234
                      Proxy                xxxx      root      RUNNING     256
 -------------------------------------------------------------------------------
\$\endgroup\$

0

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.