I'm am trying to write an ansible script that will generate thread dumps on 
java processes.  Here is my playbook:

---

 - name: generate thread dumps
   hosts: localhost
   user: oracle
   serial: 100%
   vars:
     pid: 0
     serverNames:
         - AdminServer

   tasks:
     - command: "kill -3 `pgrep -f {item}`"
       with_items: serverNames



This is the ansible result:

$ ansible-playbook thread-dump.yml -i inventory -v

PLAY [generate thread dumps] 
**************************************************

GATHERING FACTS 
***************************************************************
ok: [localhost]

TASK: [command kill -3 `pgrep -f {item}`] 
*************************************
failed: [localhost] => (item=AdminServer) => {"changed": true, "cmd": 
["kill", "-3", "`pgrep", "-f", "{item}`"], "delta": "0:00:00.005389", 
"end": "2015-07-09 17:11:38.275632", "item": "AdminServer", "rc": 3, 
"start": "2015-07-09 17:11:38.270243", "warnings": []}
stderr: kill: can't find process "`pgrep"
kill: can't find process "-f"
kill: can't find process "{item}`"

FATAL: all hosts have already failed -- aborting

PLAY RECAP 
********************************************************************
           to retry, use: --limit @/home/oracle/thread-dump.retry

localhost                  : ok=1    changed=0    unreachable=0    failed=1



The command works fine when I run it at the command prompt. 

I have also tried creating a script and executing it with the script 
command.  Here is the kill3.sh script:

kill -3 `pgrep -f $1`

Which also fails:

]$ ansible-playbook thread-dump.yml -i inventory -v

PLAY [generate thread dumps] 
**************************************************

GATHERING FACTS 
***************************************************************
ok: [localhost]

TASK: [script kill3.sh {item}] 
************************************************
failed: [localhost] => (item=AdminServer) => {"changed": true, "item": 
"AdminServer", "rc": 1}
stderr: OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
debug1: Reading configuration data /home/oracle/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: auto-mux: Trying existing master
debug1: mux_client_request_session: master session id: 2
debug1: mux_client_request_session: master session id: 2
Shared connection to localhost closed.

stdout: Invalid preceding regular expressionkill: usage: kill [-s sigspec | 
-n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]


FATAL: all hosts have already failed -- aborting

PLAY RECAP 
********************************************************************
           to retry, use: --limit @/home/oracle/thread-dump.retry

localhost                  : ok=1    changed=0    unreachable=0    failed=1


Note the script works fine when I run it from the command prompt. 

What am I doing wrong?

Thanks in advance for any assistance. 

Jane




-- 
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 post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/a045f3db-9b44-41f9-92b3-c1f2e90af6b2%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to