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 [email protected].
>> 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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/8d8739ec-e134-44b4-80ed-70f3883d8a4dn%40googlegroups.com.