在显式传递命令后,服务模块似乎未启动我的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
...
答案 0 :(得分:0)
我可以通过使用sysvinit模块来解决此问题,这与服务相反:
- name: Start docker service
sysvinit:
name: docker
state: started
enabled: yes