我想在本地计算机上使用docker容器中的ansible运行ansible剧本。 这是我的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
我的主机操作系统是OSX。我希望osx角色能够执行, 但是,似乎剧本是在高山容器上运行的。 我想问一下如何在docker中指示是否可以在本地计算机上部署内容?
答案 0 :(得分:4)
您的剧本定位到localhost
:
---
- hosts: localhost
roles:
- osx
这意味着Ansible将定位到本地计算机(即
比方说,您在运行剧本时的Ansible容器)。 Ansible是
旨在将剧本也应用于远程计算机,通常是通过
使用ssh
连接到他们。假设有可能
使用ssh
从Ansible容器连接到主机,您
可以只创建一个合适的库存文件,然后定位您的
适当的剧本:
---
- hosts: my_osx_host
roles:
- osx
如果您刚开始使用Ansible,则可能要开始 Getting Started文档,然后从那里开始。您会在该站点上找到文档,这些文档将引导您完成创建清单文件的过程。