簡體   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