web-dev-qa-db-ja.com

Ansibleを使用してリモートlxcコンテナーを管理する方法は?

Ansibleを使用してリモートサーバー上のlxcコンテナーでタスクを実行するにはどうすればよいですか?

Ansibleを使用して、コードを複数のサーバー(物理マシンと仮想マシン)にデプロイします。

これまで、すべてのインスタンスにはパブリックIPアドレスと実行中のsshサーバーがあったため、すべてが魅力のように機能していました。しかし最近、リモートサーバー上の2つのlxcコンテナーにデプロイする必要がありました。

2つのコンテナーはネイトされており、sshサーバーを実行していません(そのように維持したいと思います)。 sshを使用してそれらに接続し、物理ホストに到達してからlxc-attachすることしかできません。

私が見つけた唯一の方法は 最新のAnsible 2.0バージョン用に更新されたことのないカスタムプラグイン です。私も メーリングリストに到達しました これまでのところ結果はありません。

誰かがそのような構成でAnsibleを使用することに成功したことがありますか?

3
Thibault J

解決策が見つからなかったため、すべての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
0
Thibault J

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ホストの名前に置き換えてください。

1
John