在Ansible中,Command模块不会对shell变量进行插值,因为Command模块是直接在目标主机上执行命令,而不是在控制主机上执行。
如果你想在命令中使用shell变量,你可以使用shell模块来代替Command模块。Shell模块会在控制主机上执行命令,并且会对shell变量进行插值。
下面是一个使用shell模块的示例:
- name: Run command with shell variable interpolation
shell: echo "Hello {{ my_variable }}"
register: result
- debug:
var: result.stdout
在这个示例中,我们使用了shell模块来执行命令,并在命令中使用了{{ my_variable }}
进行插值。执行结果会存储在result
变量中,然后使用debug模块来打印出stdout。
注意:使用shell模块需要谨慎,因为它会在控制主机上执行命令,可能会引入安全风险。确保你信任并验证了shell变量的内容,以防止命令注入等安全问题。