无法在ansible playbook

时间:2018-05-03 09:13:10

标签: ansible docker-compose

我似乎无法在ansible playbook中运行docker compose任务。我陷入了困境。

运行sudo ansible-playbook playbook.yml时遇到的第一个错误是以下

fatal: [10.0.3.5]: FAILED! => {"changed": false, "msg": "Unable to load docker-compose. Try `pip install docker-compose`. Error: No module named compose"}

所以我远程到那台机器并做了sudo pip install docker-compose并尝试再次运行剧本。这次我得到......

fatal: [10.0.3.5]: FAILED! => {"changed": false, "msg": "Cannot have both the docker-py and docker python modules installed together as they use the same namespace and cause a corrupt installation. Please uninstall both packages, and re-install only the docker-py or docker python module"}

所以我尝试卸载docker python ...

  • sudo uninstall docker python

然后我在尝试再次运行剧本时得到以下内容

fatal: [10.0.3.5]: FAILED! => {"changed": false, "msg": "Failed to import docker-py - No module named docker. Try `pip install docker-py`"}

然而,这已经在机器上安装了,就像我运行sudo pip install docker-py时看到的那样......

Requirement already satisfied (use --upgrade to upgrade): docker-py in /usr/local/lib/python2.7/dist-packages
Cleaning up...

有谁知道如何逃避这个循环并成功获得一个使用docker-compose运行的ansible playbook?

机器操作系统 linux 14.04

谢谢,

2 个答案:

答案 0 :(得分:8)

对我来说有用的是首先卸载在Ansible的virtualenv中相关的所有docker。

pip uninstall docker docker-py docker-compose

然后安装docker-compose模块,它将安装docker模块以及依赖项。

pip install docker-compose

Ansible docker模块将尝试import docker,这也将成功使用docker模块,因此不会出现安装docker-py的误导性指令错误。

答案 1 :(得分:0)

在尝试运行$this->requestStack

时,我遇到了相同的错误消息
sudo ansible playbook-with-docker.yaml

我花了大约2个小时才弄清楚Linux {"changed": false, "msg": "Unable to load docker-compose. Try `pip install docker-compose`. Error: No module named compose"} pip install是不一样的(很明显,一旦知道发生了什么事)。

因此,如果有人遇到相同的问题-请确保您正在以sudo pip install或不是sudo的身份运行所有内容,但不要混在一起:)

...并使用sudo进行验证。