我似乎无法在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
谢谢,
答案 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
进行验证。