我正在尝试通过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)
答案 0 :(得分:0)
你想要逃避$
美元符号,如下:
ansible all -i inventories/prod/hosts -m shell -a "echo \$(pgrep -f java)"