如何使用Ansiblepipe理远程lxc容器?

如何使用Ansible在远程服务器上的lxc容器上执行任务?

我们使用Ansible在几台服务器(物理和虚拟机)上部署我们的代码。

到目前为止,每个实例都有一个公共IP地址和一个正在运行的ssh服务器,所以一切都像魅力一样。 但最近,我们不得不在两台远程服务器上的lxc容器上进行部署。

这两个容器是natted,不运行一个SSH服务器(我们想保持这种方式)。 我只能使用ssh连接到他们到物理主机,然后lxc-连接到他们。

我发现的唯一方法是从未更新最新的Ansible 2.0版本的自定义插件 。 我也到目前为止没有任何结果的邮件列表 。

有没有人成功地在这样的configuration中使用Ansible?

尝试使用Ansible 2.x的Pierre Chifflier的ansible -lxc-ssh连接插件。 我把插件放在ansible.cfg中定义的默认位置,/ usr / share / ansible_plugins / connection_plugins /

在清单主机文件/ etc / ansible / hosts中,我放置了以下内容

[containers] container_01 ansible_host=lxc_server ansible_connection=lxc_ssh ansible_ssh_extra_args=container_01 

请注意,您必须将容器名称作为ssh extra arg来传递。 请务必将lxc_serverreplace为lxc主机的名称。

那么,因为我找不到解决scheme,所以我最终在每个lxc容器上运行一个ssh服务器。

这是我的.ssh/config示例:

 Host main_server HostName server_address User root Port 2022 ForwardAgent yes Host lxc_container User root Port 22 ProxyCommand ssh main_server nc lxc_container 22 ForwardAgent yes