明确传递命令后,服务模块似乎没有启动我的 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
...