我是一个有用的助手,可以为您翻译文本。
我正在尝试使用Ansible playbook部署Docker设置。为此,我使用docker_service。
我的Playbook如下:
我正在尝试使用Ansible playbook部署Docker设置。为此,我使用docker_service。
我的Playbook如下:
---
- 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
运行这个简单的playbook时:
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 中成功运行 docker-compose(使用 sudo)。
另外,我也尝试过使用 docker_container 进行操作。我尝试执行以下内容的 playbook:
...
- 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
...
运行这个playbook完全没有问题。
我认为,发布我的docker-compose文件可能与此无关。
我遵循了example,但并没有起作用。也许,我可能会错过一些愚蠢或非常重要的事情。
任何有关理解和解决此问题的帮助将不胜感激。