The cp-ansible <https://github.com/confluentinc/cp-ansible> project is a bit overwhelming, but it's written by the people who know the software the best. At least reading through it is instructive, not only from a Confluent standpoint, but as an example of how a relatively large Ansible project can be structured.

As for "how do I appreciate your replies/time please let me know" — ironically, the best way to show your appreciation for people who answer questions on forums like this is to /ask interesting questions!/ Such people are here because they learn from the real-world problems actual users run into, and the challenge of producing solutions to those problems makes them better at their craft.

Good luck with your project.
--
Todd

On 7/14/23 4:20 AM, Sameer Modak wrote:
Hi Todd,
Morning!!!


Reason i didn't follow confluent playbook is because i had to develop by our own for customized services. Obviously i can take hind out of it.

Second thing why i did nt use systemd is because playbook is getting bigger but yeah u made good point i forgot to enable the serivce(by the way its there in that shell script i m running to check services its all in one)


I would like to appreciate you on suggesting ansible-lint i knew but never thaught of using but seems now its the time.

Last thing how do I appreciate your replies/time please let me know. Your responses encourages people to use ansible more and more.

Obviously its hard to remember syntax some shorthand tricks when u dont use that tool for 3 months but your replies made it easy.









On Friday, July 14, 2023 at 1:05:55 AM UTC+5:30 Todd Lewis wrote:

    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 <http://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/d39a758c-1599-433b-85d2-ef13a7dfe9e2n%40googlegroups.com <https://groups.google.com/d/msgid/ansible-project/d39a758c-1599-433b-85d2-ef13a7dfe9e2n%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/6da145b5-b43a-850c-b500-e0ffe8b3392b%40gmail.com.

Reply via email to