连接错误:获取服务器 API 版本时出错:Ansible

PPS*_*ein 7 amazon-ec2 ansible docker

我是 Ansible 的新手。我已经按照 ansible PlayBook 运行并发现了这些错误:

---
- hosts: webservers
  remote_user: linx
  become: yes
  become_method: sudo
  tasks:

    - name: install docker-py
      pip: name=docker-py

    - name: Build Docker image from Dockerfile
      docker_image:
        name: web
        path: docker
        state: build

    - name: Running the container
      docker_container:
        image: web:latest
        path: docker
        state: running

    - name: Check if container is running
      shell: docker ps
Run Code Online (Sandbox Code Playgroud)

错误信息:

失败的!=> {"changed": false, "msg": "错误连接:获取服务器 API 版本时出错:('连接中止。',错误(2,'没有这样的文件或目录'))”}

这是我的文件夹结构:

.
??? ansible.cfg
??? docker
?   ??? Dockerfile
??? hosts
??? main.retry
??? main.yml
Run Code Online (Sandbox Code Playgroud)

我很困惑该docker文件夹已经在我的本地文件夹中,但不知道为什么我遇到了这些错误消息。

PPS*_*ein 7

我发现解决方案是DockerdaemonDocker安装后无法正常工作Ansible。需要在我的游戏板中添加以下命令。

---
- hosts: webservers
  remote_user: ec2-user
  become: yes
  become_method: sudo
  tasks:
    - name: install docker
      yum: name=docker

    **- name: Ensure service is enabled
      command: service docker restart***

    - name: copying file to remote
      copy:
        src: ./docker
        dest: /home/ec2-user/docker
    - name: Build Docker image from Dockerfile
      docker_image:
        name: web
        path: /home/ec2-user/docker
        state: build
    - name: Running the container
      docker_container:
        image: web:latest
        name: web
    - name: Check if container is running
      shell: docker ps
Run Code Online (Sandbox Code Playgroud)

  • 您将需要使用 `service: name=docker state=started` 来防止剧本不断地弹跳 docker 守护进程 (5认同)