python – msg:ConnectionError(ProtocolError(‘Connection aborted.’,error(2,’No such file or directory’)),)

我在TASK上遇到错误:nginx容器:

failed: [localhost] => {"changed": false, "failed": true}
msg: ConnectionError(ProtocolError('Connection aborted.', error(2, 'No such file or directory')),)

FATAL: all hosts have already failed -- aborting

播放下一个Ansible剧本时:

---
-   name: Play
    hosts: localhost
    vars: []
    tasks:
        -   name: nginx container
            docker:
                name: my.nginx2
                image: nginx
                state: started

我做错了什么?这是一个错误吗?

附:使用-vvvv得到的更详细的输出是:

<localhost> REMOTE_MODULE docker state=started name=my.nginx2 image=nginx
<localhost> EXEC ['/bin/sh', '-c', 'mkdir -p $HOME/.ansible/tmp/ansible-tmp-1431434101.65-11072088770561 && chmod a+rx $HOME/.ansible/tmp/ansible-tmp-1431434101.65-11072088770561 && echo $HOME/.ansible/tmp/ansible-tmp-1431434101.65-11072088770561']
<localhost> PUT /tmp/tmp7ySlXq TO /home/victor/.ansible/tmp/ansible-tmp-1431434101.65-11072088770561/docker
<localhost> EXEC ['/bin/sh', '-c', u'LANG=C LC_CTYPE=C /usr/bin/python /home/victor/.ansible/tmp/ansible-tmp-1431434101.65-11072088770561/docker']
failed: [localhost] => {"changed": false, "failed": true}
msg: ConnectionError(ProtocolError('Connection aborted.', error(2, 'No such file or directory')),)

FATAL: all hosts have already failed -- aborting

最佳答案 你应该安装docker:

- name: install docker
  shell: curl -sSL https://get.docker.com/ | sh
  args:
     creates: /usr/bin/docker

你应该检查它是否有效:

- name: Wait for the Docker server to start
  action: raw docker version
  register: docker_version
  until: docker_version.stdout.find("Client") != -1
  retries: 30
  delay: 10

并且您需要满足所有依赖项(http://docs.ansible.com/ansible/docker_module.html):

Requirements (on host that executes module)
python >= 2.6
docker-py >= 0.3.0
The docker server >= 0.10.0
点赞