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.