我正在编写一个 ansible 剧本,它应该从源代码编译一些工具并安装它。
在检查我的剧本时,我尝试手动运行相关命令来检查它们的输出。
所以,在我的 ansible 剧本中,我配置了这个:
- name: Configure kafkacat
command: . {{ install_dest }}/configure arg1
args:
enable_json: "--enable-json"
sudo: yes
但是在运行playbook之前,我手动运行了:
. /tmp/kafkacat/configure --enable-json
应该相当于./configure
在当前目录下运行,但是命令失败,报错。
那么怎么做呢?提前致谢
在很多情况下,根据软件配置依赖于从当前工作目录打开包含和标题。
ansible 确实支持“chdir”参数。也许这就是适合您的解决方案?
不,我不认为它们是等价的。后面没有空格的点替换了当前目录的路径,而空格前面的点使脚本命令在当前shell中运行。这里有一个很好的解释: https ://askubuntu.com/q/232932