【发布时间】:2018-02-16 06:39:15
【问题描述】:
我正在尝试使用 Ansible playbook 部署 docker 设置。为此,我使用docker_service。
我的剧本看起来像:
---
- name: Run Docker compose
hosts: all
gather_facts: no
tasks:
- debug: msg="Container - {{ inventory_hostname }}"
- docker_service:
project_src: "compose"
state: absent
- docker_service:
project_src: "compose"
state: present
在运行这个简单的剧本时:
ansible-playbook -v playbook.yml --ask-sudo-pass
我添加了--ask-sudo-pass 以确保这不是权限问题。
输出
SUDO password:
PLAY [Run Docker compose] ******************************************************
TASK [debug] *******************************************************************
ok: [prolims-staging] => {
"msg": "Container - prolims-staging"
}
TASK [docker_service] **********************************************************
fatal: [prolims-staging]: FAILED! => {"changed": false, "msg": "Error connecting: Error while fetching server API version: ('Connection aborted.', error(13, 'Permission denied'))"}
to retry, use: --limit @/data/prolims-provision/provision-docker.retry
PLAY RECAP *********************************************************************
prolims-staging : ok=1 changed=0 unreachable=0 failed=1
我也尝试在其他论坛上查找此问题(以及此 StackOverflow 上的类似问题),但这些都没有帮助。
注意:我可以通过 CLI(使用 sudo)在目标机器上成功运行 docker-compose。
另外,我也尝试过使用 docker_container。我尝试执行包含以下内容的剧本:
...
- name: check container status
command: docker ps
register: result
- name: Create a container
docker_container:
name: db_pg
image: "postgres:latest"
state: present
recreate: yes
...
运行这个剧本非常好。
我认为,在这里发布我的 docker-compose 文件可能与此无关。
我关注了这个example,但没有工作。也许,我可能在这里遗漏了一些愚蠢或非常重要的东西。
对于理解和解决此问题的任何帮助将不胜感激。
【问题讨论】:
标签: docker ansible docker-compose