Hi Todd,

I tried to run script with shell module but it fails with below error,

[kafka-3: FAILED! => {"changed": true, "cmd": "if pkill --signal 9 -f 
zookeeper.properties ; then\nsystemctl start 
confluent-zookeeper510\nelse\nexit 1\nfi\nsystemctl status 
confluent-zookeeper510\n", "delta": "0:00:00.034111", "end": "2023-07-12 
10:31:58.344951", "failed_when_result": true, "msg": "non-zero return 
code", "rc": -9, "start": "2023-07-12 10:31:58.310840", "stderr": "", 
"stderr_lines": [], "stdout": "", "stdout_lines": []}

fatal: [kafka-4]: FAILED! => {"changed": true, "cmd": "if pkill --signal 9 
-f zookeeper.properties ; then\nsystemctl start 
confluent-zookeeper510\nelse\nexit 1\nfi\nsystemctl status 
confluent-zookeeper510\n", "delta": "0:00:00.032830", "end": "2023-07-12 
10:31:59.744091", "failed_when_result": true, "msg": "non-zero return 
code", "rc": -9, "start": "2023-07-12 10:31:59.711261", "stderr": "", 
"stderr_lines": [], "stdout": "", "stdout_lines": []}

===========================================================================

code:

- name: Kill running java processes and start newly configured systemd

    throttle: 1

#    ignore_errors: yes

    any_errors_fatal: true

    shell: |

      if [ pkill --signal 9 -f zookeeper.properties ] ; then 

      systemctl start confluent-zookeeper510; sleep 2; echo "stat" | nc 
localhost 2181;st="$?" systemctl status confluent-zookeeper510 -l | grep -v 
ERRROR;et="$?"

      [[ $st -eq 0 && $et -eq 0 ]] && exit 0 || exit 1 

      else 

      exit 1 

      fi

    register: zkstart

    failed_when: zkstart.rc != 0

    when: not zkmode.stdout_lines is search('leader')

On Wednesday, July 12, 2023 at 1:29:58 PM UTC+5:30 Sameer Modak wrote:

> First of all Thanks  a lot for introducing me pkill way otherwise i would 
> have written one more task to register the process id.
>
> Many thanks Todd.  
>
> Secondly, as its impossible to explore entire tool like ansible hence just 
> asking you the question,  Does it even possible to do above things using 
> ansible module in single task???
> like find process id of process and kill if it doesnt exist do not proceed 
> with other hosts as well.
>
>
>
> On Tuesday, July 11, 2023 at 9:59:59 PM UTC+5:30 Todd Lewis wrote:
>
>> Regrettably, pgrep and pkill seem widely unknown.
>>
>> - name: Kill zookeeper processes and restart service
>>   ansible.builtin.shell: |
>>     if pkill --signal 9 -f zookeeper.properties ; then
>>        sleep 6
>>        systemctl start confluent-zookeeper510
>>     fi
>>     systemctl status confluent-zookeeper510
>>   register: zkstart
>>
>>
>> On 7/11/23 10:26 AM, Sameer Modak wrote:
>>
>> I have used shell module and failed when combination to achieve this. 
>>
>>    - name: Get running processes list from remote host
>>
>>     shell: "ps -efw | grep -e zookeeper.properties | grep -v grep |awk 
>> '{print $2}'"
>>
>>     register: runningzkprc
>>
>>   - name: Kill running processes
>>
>>     throttle: 1
>>
>> #    ignore_errors: yes
>>
>>     shell: |
>>
>>         kill -9 "{{ runningzkprc.stdout_lines[0] }}"
>>
>>       sleep 3
>>
>>       sleep 3
>>
>>       systemctl start confluent-zookeeper510
>>
>>       systemctl status confluent-zookeeper510 -l| grep -i error
>>
>>     register: zkstart
>>
>>     failed_when: zkstart.rc != 0
>>
>>     when: not zkmode.stdout_lines is search('leader')
>>
>> On Tuesday, July 11, 2023 at 12:47:04 AM UTC+5:30 Sameer Modak wrote:
>>
>>> Hello team, 
>>>
>>> I am trying to restart zookeeper service on all 3 nodes sequentially , 
>>> we want restart zookeeper service one by one but it will be only run on 2nd 
>>> server if 1st server zookeeper service was successful. How do i achieve 
>>> this in 1 task .
>>>
>>> task should fail if service is not properly restarted.
>>>
>>> - name: restart zookeeper one by one on  follower first and ensure all 
>>> is good
>>>
>>>     throttle: 1
>>>
>>>     service:
>>>
>>>       name: 'confluent-zookeeper'
>>>
>>>       state: restarted
>>>
>>>     when: not zkmode.stdout_lines is search('leader')
>>>
>>>
>>>   - name: check follower zookeeper are up and running
>>>
>>>     shell: 'systemctl status confluent-zookeeper -l| grep -i error || 
>>> systemctl status confluent-zookeeper | grep  failed'
>>>
>>>     register: zkstatus
>>>
>>>     failed_when: zkstatus.rc == 0
>>>
>>>
>>> Now in this case , 1 task is getting executed on all hosts despite 
>>> having error in logs . I want it to be failed as soon as it has error and 
>>> should not continue on next server.
>>>
>>>
>>>
>>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Ansible Project" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to ansible-proje...@googlegroups.com.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/ansible-project/7b8e12de-8c99-4f85-ba9a-618f7308cdc9n%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/ansible-project/7b8e12de-8c99-4f85-ba9a-618f7308cdc9n%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>>
>> -- 
>> Todd
>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to ansible-project+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/8d8739ec-e134-44b4-80ed-70f3883d8a4dn%40googlegroups.com.

Reply via email to