繁体   English   中英

从Docker容器运行Ansible Playbook并在主机上部署

[英]Run ansible playbook from docker container and deploy on host machine

我想在本地计算机上使用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

角色/ OSX /任务/ 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角色将执行,但是看来Playbook是在高山容器上运行的。 我想问一下如何在docker中指示可在我的本地计算机上部署内容?

您的剧本的目标是localhost

---
- hosts: localhost
  roles:
  - osx

这意味着Ansible在运行剧本时将以本地计算机(即Ansible容器)为目标。 Ansible旨在将剧本也应用于远程计算机,通常是通过使用ssh连接到它们。 假设可以使用ssh从Ansible容器连接到主机,您可以只创建一个适当的清单文件,然后适当地定位您的剧本:

---
- hosts: my_osx_host
  roles:
  - osx

如果您只是从Ansible开始,则可能要从“ 入门”文档开始,然后从那里开始。 您可以在该站点上找到文档,这些文档将引导您完成创建清单文件的过程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM