使用Ansible进行shell扩展

时间:2016-08-01 16:25:31

标签: ansible

我正在尝试通过Ansible执行远程命令,这需要收集进程的PID:

ansible webserver -m shell -a 'jstack -l $(pgrep -f java)'

然而,似乎Ansible无法扩展括号中包含的shell命令(尝试使用重音符号):

127.0.0.1 | FAILED | rc=1 >>
Usage:
    jstack [-l] <pid>

仅在扩展中执行命令会发现扩展不会发生:

ansible webserver  -a 'echo $(pgrep -f java)'
192.168.0.1 | success | rc=0 >>
$(pgrep -f java) 

1 个答案:

答案 0 :(得分:0)

你想要逃避$美元符号,如下:

ansible all -i inventories/prod/hosts -m shell -a "echo \$(pgrep -f java)"