I trigger multiple tomcat startup scripts and then need to check if all 
process listens on their specific port across multiple hosts in the 
quickest time possible.

For the test case, I m writing 3 scripts  instead of tomcat scripts that 
runs on a single host and listen on ports 4443,4445,4447 respectively as 
below.

cat /tmp/startapp1.sh

while test 1 # infinite loop
sleep 10
do
    nc -l localhost 4443 > /tmp/app1.log
done

cat /tmp/startapp2.sh

while test 1 # infinite loop
sleep 30
do
    nc -l localhost 4445 > /tmp/app2.log
done

cat /tmp/startapp3.sh

while test 1 # infinite loop
sleep 20
do
nc -l localhost 4447 > /tmp/app3.log
done
Below is my code to trigger the script and check if the telnet is 
successful:

cat main.yml

 - include_tasks: "internal.yml"
   loop:
     -  /tmp/startapp1.sh 4443
     -  /tmp/startapp2.sh 4445
     -  /tmp/startapp3.sh 4447
cat internal.yml

   - shell: "{{ item.split()[0] }}"
     async: 600
     poll: 0

   - name: DEBUG CHECK TELNET
     shell: "telnet {{ item.split()[1] }}"
     delegate_to: localhost
     register: telnetcheck
     until: telnetcheck.rc == 0
     async: 600
     poll: 0
     delay: 6
     retries: 10

   - name: Result of TELNET
     async_status:
       jid: "{{ item.ansible_job_id }}"
     register: _jobs
     until: _jobs.finished
     delay: 6
     retries: 10
     with_items: "{{ telnetcheck.results }}"
   
Expectation: The above three scripts should start along with telnet check 
in about 30 seconds.

Thus, the basic check that needs to be done here is telnet until: 
telnetcheck.rc == 0 but due to async the telnet shell module does not have 
entries for rc and hence I get the below error:

"msg": "The conditional check 'telnetcheck.rc == 0' failed. The error was: 
error while evaluating conditional (telnetcheck.rc == 0): 'dict object' has 
no attribute 'rc'"

In the above code where and how can I check if telnet had succeeded i.e 
telnetcheck.rc == 0 and make sure the Expectation is met?

-- 
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/19bde69c-b54d-41d7-a9dc-7a8515c51c44n%40googlegroups.com.

Reply via email to