1

明确传递命令后,服务模块似乎没有启动我的 docker 守护进程。Ansible 没有在目标主机中启动 docker 守护进程。任务:

- name: Install Docker
  apt: 
    name: docker-engine 
    state: present 
    update_cache: yes

- name: Install pip
  apt: 
    name: python-pip 
    state: present

- name: Install docker-py
  pip: 
    name: docker-py
    state: present

- name: Start docker service
  service: 
    name: docker
    state: started
    enabled: yes
...

这一切看起来都不错。安装 docker-engine,确认状态存在。安装 pip 来安装 docker-py,确认它存在。然后确保 docker 服务已启动。但是,在尝试创建 docker 容器时,stderr 会抛出以下内容:

fatal: [ubuntu-xenial]: FAILED! => {"changed": false, "msg": "Error connecting: Error while fetching server API version: ('Connection aborted.', error(2, 'No such file or directory'))"}
...

如果登录到盒子并启动 docker 服务,问题就会消失。

service docker start我可以通过使用模块隐式运行命令来解决这个问题command——这就是它变得奇怪的方式......因为它有效:

- name: Ensure docker service is enabled
  command: service docker start
...
4

1 回答 1

0

我可以通过使用 sysvinit 模块来解决这个问题,而不是服务:

- name: Start docker service
  sysvinit:
    name: docker
    state: started
    enabled: yes
于 2019-04-09T18:01:42.373 回答