Ansible:如何使用`ansible -a`执行多个命令

时间:2018-03-29 08:09:45

标签: ansible ansible-2.x

这有效:

  ansible host -a "echo hello"                # hello

但这回复了一个奇怪的答案

  ansible host -a "echo hello && echo world"      # hello && echo world

ansible是否与&&一起逃脱;ansible -a

我该怎么办?

2 个答案:

答案 0 :(得分:2)

我记得ansible只使用ssh。

# not work
ansible host -a "echo hello && echo world"
# works
ansible host -a "bash -c 'echo hello && echo world'"

该命令仅通过ssh命令执行。

答案 1 :(得分:2)

默认情况下ansible CLI使用command模块,该模块不通过shell提供其参数。

您想要使用shell模块:

ansible host -m shell -a 'echo hello && echo world'