Any reason you don't want to follow https://docs.confluent.io/ansible/current/overview.html ("Ansible Playbooks for Confluent Platform")?

It's not clear how you got zookeeper and friends installed on these hosts without the benefit of a service manager. In any case, I'm surprised you're putting the systemd unit files elsewhere from /etc/systemd/system. And I don't see you enabling or starting those services.

Be sure to run ansible-lint and consider taking its recommendations.

Otherwise, without spinning up unmanaged instances myself, I don't have anything else to comment on.
--
Todd

On 7/13/23 2:51 PM, Sameer Modak wrote:
Hello Todd/Dick/Stephan,

This is how i did, do u thnink any of below tasks  can still be handled otherwise (more accurately) or this is the best way.
--- - hosts: allbecome: yestasks:
- name: create log dirs specifics to zookeeper,server and schema-registryfile:path: "{{ item }}"state: directoryloop:- /var/log/zookeeper- /var/log/kafka- /var/log/schema-registry - name: copy service files to /usr/lib/systemd/systemtemplate:src: "{{ item.src }}"dest: "{{ item.dest }}"loop:- {src: 'confluent-zookeeper.service.j2', dest: '/usr/lib/systemd/system/confluent-zookeeper.service'}- {src: 'confluent-kafka.service.j2', dest: '/usr/lib/systemd/system/confluent-kafka.service'}- {src: 'confluent-schema-registry.service.j2', dest: '/usr/lib/systemd/system/confluent-schema-registry.service'}
- name: systemd reloadsystemd:daemon_reload: true
- name: check who is existing zokeeper leadershell: 'echo stat | nc localhost 2181 | grep Mode'register: zkmode - name: get broker idshell: |export brkid=$(ps -ef | grep -i server.properties | grep -v grep| awk '{print $NF}')grep broker.id ${brkid} | awk -F'=' '{print $2}'register: brokerid - name: get controller idshell: "echo dump | nc localhost 2181 | grep -A 2 -i controller | grep -i brokers | awk -F '/' '{print $NF}'"register: controllerid - name: copy zookeeper,schema-registry and kafka service check files on serverstemplate:src: check.j2dest: '/tmp/check{{ item }}.sh'mode: 551loop:- 'zookeeper'- 'schema-registry'- 'kafka' - name: Kill running unmanaged java processes for zookeeper and schma-registry thenstart newly configured systemd processessthrottle: 1 #ignore_errors: yesany_errors_fatal: trueshell: "/bin/bash /tmp/check{{ item }}.sh"register: followerstatfailed_when: followerstat.rc != 0when: not zkmode.stdout_lines is search('leader')loop:- 'zookeeper'- 'schema-registry' - name: As all followers are up now repeat to kill running java cp and start systemd for leaderany_errors_fatal: trueshell: "/bin/bash /tmp/check{{ item }}.sh"register: leadeprocstatfailed_when: leadeprocstat.rc != 0when: zkmode.stdout_lines is search('leader')loop:- 'zookeeper'- 'schema-registry' - name: Kill running unmanaged java processes for broker and start broker from systemd for followersthrottle: 1any_errors_fatal: trueshell: "/bin/bash /tmp/checkkafka.sh"register: broprocstatfailed_when: broprocstat.rc != 0when: (brokerid.stdout_lines[0] | int) != (controllerid.stdout_lines[0] | int) - name: Kill running unmanaged java processes for broker and start broker from systemd for leaderthrottle: 1any_errors_fatal: trueshell: "/bin/bash /tmp/checkkafka.sh"register: broprocstatfailed_when: broprocstat.rc != 0 If this is most accurate  way then i think guys  who are looking for similar solution can use this for reference.
On Wednesday, July 12, 2023 at 8:17:09 PM UTC+5:30 Sameer Modak wrote:

    I get it . But this is specific case where my current process is
    not managed by systemd so i had to use pkill anyways.

    Now issue is shell module with if else is not working for me
    correctly. Like its giving rc -9. if i copy same shell script and
    rung using shell module like bash /tmp/zkproc.sh it works.

    Reason to post here is due to shell module multiple command not
    working as expected. Below is shell script.  Now i had to use grep
    -v "ERROR;et="$?" because sometime process does says its running
    but log has some errors which cant be ignored.


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

           sleep 2;systemctl start confluent-zookeeper510; sleep 2;
    echo "stat" | nc localhost 2181;st="$?"

           systemctl status confluent-zookeeper5910 -l | grep -v
    ERROR;et="$?"

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

    else

    exit 1

    fi




    On Wednesday, July 12, 2023 at 5:01:27 PM UTC+5:30 Dick Visser wrote:

        Hii,


        On Wed, 12 Jul 2023 at 12:53, Sameer Modak
        <[email protected]> wrote:

            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="$?"


        I feel we're going down a rabbit hole trying to fight ill
        designed systemd units with shell hacks (which include typos?
        ERRROR instead of ERROR).
        My approach would be to make sure the systemd unit is doing
        what it should do, and then rely on that to do its job....

--
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/f38bfb8a-ddf1-448c-a1f5-74bb8193ff64n%40googlegroups.com <https://groups.google.com/d/msgid/ansible-project/f38bfb8a-ddf1-448c-a1f5-74bb8193ff64n%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/ef19bbc4-7ae7-3bae-c20f-67e6ba40c9cb%40gmail.com.

Reply via email to