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: all
>   become: yes
>   tasks:
>
>   - name: create log dirs specifics to zookeeper,server and schema-registry
>     file:
>       path: "{{ item }}"
>       state: directory
>     loop:
>       - /var/log/zookeeper
>       - /var/log/kafka
>       - /var/log/schema-registry
>
>   - name: copy service files to /usr/lib/systemd/system
>     template:
>       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 reload
>     systemd:
>       daemon_reload: true 
>
>   - name: check who is existing zokeeper leader
>     shell: 'echo stat | nc localhost 2181 | grep Mode'
>     register: zkmode
>
>   - name: get broker id 
>     shell: |
>       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 id 
>     shell: "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 
> servers
>     template:
>       src: check.j2
>       dest: '/tmp/check{{ item }}.sh'
>       mode: 551
>     loop:
>       - 'zookeeper'
>       - 'schema-registry'
>       - 'kafka' 
>
>   - name: Kill running unmanaged java processes for zookeeper and 
> schma-registry then  start newly configured systemd processess
>     throttle: 1
> #    ignore_errors: yes
>     any_errors_fatal: true
>     shell: "/bin/bash /tmp/check{{ item }}.sh"
>     register: followerstat
>     failed_when: followerstat.rc != 0
>     when: 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 leader
>     any_errors_fatal: true
>     shell: "/bin/bash /tmp/check{{ item }}.sh"
>     register: leadeprocstat
>     failed_when: leadeprocstat.rc != 0
>     when: zkmode.stdout_lines is search('leader')
>     loop: 
>       - 'zookeeper'
>       - 'schema-registry'
>
>   - name: Kill running unmanaged java processes for broker and start broker 
> from systemd for followers
>     throttle: 1
>     any_errors_fatal: true
>     shell: "/bin/bash /tmp/checkkafka.sh"
>     register: broprocstat
>     failed_when: broprocstat.rc != 0
>     when: (brokerid.stdout_lines[0] | int) != (controllerid.stdout_lines[0] | 
> int)  
>
>   - name: Kill running unmanaged java processes for broker and start broker 
> from systemd for leader
>     throttle: 1
>     any_errors_fatal: true
>     shell: "/bin/bash /tmp/checkkafka.sh"
>     register: broprocstat
>     failed_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 <sameer.m...@gmail.com> 
>>> 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 ansible-proje...@googlegroups.com.
>
> 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 ansible-project+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/d39a758c-1599-433b-85d2-ef13a7dfe9e2n%40googlegroups.com.

Reply via email to