The subtle difference in an ansible script "SHELL" and the directly running Shell commands on an ubuntu machine 20.04 EC2?

Viewed 29

I come with a Vagrant script that pulls down an bionic 18 which then runs an ansible playbook which generates two EC2s ubuntu 20.04 which successfully run though every "task:" I assign. I am able to run everything I want in a largely automated download and execution for a publisher subscriber method. Here is the issue: I can run my .sh and .py scripts manually and the systems works, but when I use the ansible methods I must be doing something wrong much like these solutions point to:

What I want to do is simply correct the issue with this, and run it in the background.

- name: Start Zookeeper
  shell: sudo /usr/local/kafka-server/bin/zookeeper-server-start.sh  /usr/local/kafka-server/config/zookeeper.properties </dev/null >/dev/null 2>&1 &
- name: Sleep for 30 seconds and continue with play
  wait_for:
    timeout: 15
- name: Start Kafka broker
  shell: sudo /usr/local/kafka-server/bin/kafka-server-start.sh  /home/ubuntu/usr/local/kafka-server/config/server.properties </dev/null >/dev/null 2>&1 &

I have tried it with just a single "&" at the end as well as passing in explicit calls to my user account "ubuntu". I've used the "become: yes". I really don't want to use a daemon especially since others seem to have used this successfully before.

I do want to note that a glaring sign to you that I can't seem to think through is that it hangs when I don't include the &, but if I do include the & it just outright fails, which made me think it was running, but the script won't proceed because these are listener processes.

#     - name: Start Zookeeper
#       become: yes
#       script: /usr/local/kafka-server/bin/zookeeper-server-start.sh
#       args: 
#         chdir: /usr/local/kafka-server/config/zookeeper.properties

This failed, and I'd rather not create another script to copy over the directories and localize it if there is a simple solution to the first block of code.

Multiple ways to skin this cat, but I'd rather just have my mistake on the shell ansible command fixed, and I don't see it.

0 Answers
Related