0

我正在使用 Ansible 1.7 (devel) 和 Docker 0.9.1 build 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,因为为 docker 容器添加了“运行”状态。

4

3 回答 3

0

我得到了同样的错误,这修复了它

$ sudo apt-get install -y python-pip
$ sudo pip install docker-py
于 2015-01-07T11:57:31.693 回答
0

我今天遇到了这个问题并决定解决它。问题的要点是旧版本的 docker 没有指定 ApiVersion(或者 docker-py 包不返回它)。

我已经在 ansible docker 模块中提交了一个拉取请求来解决这个问题:https ://github.com/ansible/ansible/pull/7619

或者,您可以升级您的 docker 版本来解决它。

于 2014-05-31T22:33:39.397 回答
0

正如在更一般的答案中所说,使用以下docker_api_version: auto论点:

- name: Mongo data container
  docker:
    docker_api_version: auto
    name: mongo-primary-dc
    image: debian:wheezy
    state: present
    volumes:
    - /data
于 2016-01-22T11:38:11.980 回答