我希望能够使用从Docker容器中的ansible运行playbook在我的本地机器上。以下是我的Ansible Dockerfile:
FROM alpine:3.6
WORKDIR /ansible
RUN apk update \
&& apk add ansible
ENTRYPOINT ["ansible-playbook"]
playbook.yml:
---
- hosts: localhost
roles:
- osx
roles/osx/tasks/main.yml
---
- name: Welcome
shell: echo "Hello"
when: ansible_distribution == 'MacOSX'
我用以下命令运行它:
docker build -t ansible_image:latest .
docker run --rm --network host \
-v $(pwd):/ansible \
ansible_image:latest ansible/playbook.yml
我的主机操作系统是OS X。我希望osx角色会被执行,但似乎playbook在alpine容器上运行。我想问如何指示ansible在docker中部署东西到我的本地机器?
host.docker.internal
这样的东西,这又意味着在主机上运行sshd并将有效的密钥对推入容器中。试图嵌入一个工具来管理Docker容器使一切变得比必要的困难。 - David Maze