Can Ansible可以远程部署Docker容器吗?

问题描述:

据我所知,Ansible通常用于通过SSH自动化远程服务器的供应/配置。Can Ansible可以远程部署Docker容器吗?

然而,这个文件规定..

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

泊坞窗 - 该连接器部署剧本直接进入使用本地泊坞客户Docker容器。

我的问题是...... Ansible可以在远程机器上或仅在运行Ansible的机器(即控制器机器)上创建和配置Docker容器?

任何提示或任何良好的联系,非常感谢。

希望我能正确理解你的问题。

具有搬运工客户端或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

在这一点上,你流浪的虚拟可以操纵远程主机的码头工人。

当然,它可以在远程机器上部署容器。有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引擎。

我正在使用它。如果你想检查项目: 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)文件解释**主机文件**的用法。主机文件用于保持与每个远程或本地节点相关的可靠设置。希望它可以帮助你! –