Ansibleを使用してリモートサーバー上のlxcコンテナーでタスクを実行するにはどうすればよいですか?
Ansibleを使用して、コードを複数のサーバー(物理マシンと仮想マシン)にデプロイします。
これまで、すべてのインスタンスにはパブリックIPアドレスと実行中のsshサーバーがあったため、すべてが魅力のように機能していました。しかし最近、リモートサーバー上の2つのlxcコンテナーにデプロイする必要がありました。
2つのコンテナーはネイトされており、sshサーバーを実行していません(そのように維持したいと思います)。 sshを使用してそれらに接続し、物理ホストに到達してからlxc-attachすることしかできません。
私が見つけた唯一の方法は 最新の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
Ansible 2.xで動作するPierreChifflierの 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追加引数として渡す必要があることに注意してください。必ずlxc_serverをlxcホストの名前に置き換えてください。