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