Ssh
如何使用 Ansible 管理遠端 lxc 容器?
如何使用 Ansible 在遠端伺服器上的 lxc 容器上執行任務?
我們使用 Ansible 在多個伺服器(物理機和虛擬機)上部署我們的程式碼。
到目前為止,每個實例都有一個公共 IP 地址和一個正在執行的 ssh 伺服器,所以一切都像一個魅力。但最近,我們不得不在遠端伺服器上部署兩個 lxc 容器。
這兩個容器是 nat 的,不執行 ssh 伺服器(我們希望保持這種狀態)。我只能使用 ssh 連接到它們以到達物理主機,然後 lxc-attach’ing 到它們。
我發現的唯一方法是一個自定義外掛,它從未針對最新的 Ansible 2.0 版本進行更新。到目前為止,我也到達了郵件列表,但沒有任何結果。
有沒有人成功地在這樣的配置中使用 Ansible?
好吧,由於我找不到解決方案,我最終在每個 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
試試Pierre Chifflier 的 ansible -lxc-ssh連接外掛,它適用於 Ansible 2.x。我把外掛放在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 額外參數傳遞。請務必將 lxc_server 替換為您的 lxc 主機的名稱。