2017-01-09 89 views
0

據我所知,Ansible通常用於通過SSH自動化遠程服務器的供應/配置。Can Ansible可以遠程部署Docker容器嗎?

然而,這個文件規定..

http://docs.ansible.com/ansible/intro_inventory.html#non-ssh-connection-types

泊塢窗 - 該連接器部署劇本直接進入使用本地泊塢客戶Docker容器。

我的問題是...... Ansible可以在遠程機器上或僅在運行Ansible的機器(即控制器機器)上創建和配置Docker容器?

任何提示或任何良好的聯繫,非常感謝。

回答

1

希望我能正確理解你的問題。

具有搬運工客戶端或API庫(EG:docker-py)的任何機器,網絡訪問,並且被正確配置可遠程操縱搬運工守護程序。

要做到這一點,you must configure the docker daemon to listen remotely.警告:默認情況下,它是不安全的,沒有身份驗證!確保使用證書認證設置SSL。

之後,您可以安裝docker客戶端(或庫)和相關證書。如果您使用的是客戶端,則需要在Vagrant上設置環境變量。這些變量是:

DOCKER_HOST=docker_host:docker_port 
DOCKER_TLS_VERIFY=true 

你應該把證書在~/.docker具有以下名稱約定:ca.pem cert.pem key.pem

在這一點上,你流浪的虛擬可以操縱遠程主機的碼頭工人。

2

當然,它可以在遠程機器上部署容器。有several modules for Docker,但你所要求的docker_container

--- 
- hosts: docker_host 
    tasks: 
    - name: Ensure web based hello world container is running 
     docker_container: 
     name: web_hello_world 
     image: tutum/hello-world 
     ports: 
      - 80:80 

也看看docker_image,如果你想建立一個碼頭工人的形象。


泊塢連接類型,你的問題引用,用來直接連接到多克爾容器(和容器內運行的任務),而不是運行容器的機器。所以除非你在容器中運行Docker,否則這種類型的連接不用於部署Docker容器。

即便如此,報價指的是「本地Docker客戶端」,而不是本地Docker引擎。

1

我正在使用它。如果你想檢查項目: https://github.com/ppc64le/ciaas

我使用docker_service module它運行良好。

+0

感謝您鏈接到您的git項目。這將與本地計算機上的碼頭容器或遠程計算機上的容器一起工作嗎?如果它是一臺遠程機器,你在哪裏傳遞遠程機器的設置? – Sam

+0

Hi @Sam!在這個項目中有[DOCUMENTATION.md](https://github.com/ppc64le/ciaas/blob/master/DOCUMENTATION.md)文件解釋**主機文件**的用法。主機文件用於保持與每個遠程或本地節點相關的可靠設置。希望它可以幫助你! –

相關問題