为什么在Ansible playbook脚本中执行"eval "$(docker-machine env default)""会返回"No such file or directory"错误?

3
我尝试使用ansible执行docker-compose在一个虚拟机上创建容器(驱动程序为virtualbox)。因此,我编写了一个ansible-playbook脚本来完成此操作。我的用户(ALL/nopasswd)已添加到sudoers组中。
在之前激活虚拟机。
shell: eval "$(docker-machine env default)"


shell: docker-compose up -d

它没有激活我的远程机器,而是停留在我的主机上。

好的:[192.168.0.12] => { "msg": "" }

因此,docker-compose会在本地机器上创建容器,而不是在远程机器上。

非常感谢您的帮助。

Olivier


1
首先,command 模块不处理 shell 技巧,请使用 shell 模块。 - Konstantin Suvorov
我更改了我的问题内容(命令行),因为我尝试了许多操作。我也测试了Shell。你是对的,但使用Shell也无法定位我的远程机器。 - Olivier
1个回答

2

抱歉,每个任务都在独立的 shell 中运行,因此我编写了一个多行 shell 脚本来解决我的问题。

shell: |
  eval $(sudo docker-machine env default)
  docker-compose up -d

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接