我使用Ansible 1.7(开发)和Docker 0.9.1版本3600720,我遇到了这个错误:
failed: [myapp.com] => {"failed": true, "item": "", "parsed": false}
invalid output was: Traceback (most recent call last):
File "/root/.ansible/tmp/ansible-tmp-1400951250.7-173380463612813/docker", line 1959, in <module>
main()
File "/root/.ansible/tmp/ansible-tmp-1400951250.7-173380463612813/docker", line 693, in main
containers = manager.create_containers(1)
File "/root/.ansible/tmp/ansible-tmp-1400951250.7-173380463612813/docker", line 548, in create_containers
if docker.utils.compare_version('1.10', self.client.version()['ApiVersion']) < 0:
KeyError: 'ApiVersion'
有什么想法吗?是否有任何组合的版本?我需要Ansible 1.7,因为&#39;运行&#39;为docker容器添加的状态。
答案 0 :(得分:0)
我今天遇到了这个问题并决定解决它。问题的关键是旧版本的docker没有指定ApiVersion(或者docker-py包没有返回它)。
我已在此处的ansible docker模块中提交了解决此问题的拉取请求:https://github.com/ansible/ansible/pull/7619
或者你可以升级你的泊坞版本来解决它。
答案 1 :(得分:0)
我得到了同样的错误并修复了它
$ sudo apt-get install -y python-pip
$ sudo pip install docker-py
答案 2 :(得分:0)
正如在more general answer中所述,使用docker_api_version: auto
参数:
- name: Mongo data container
docker:
docker_api_version: auto
name: mongo-primary-dc
image: debian:wheezy
state: present
volumes:
- /data