Como usar o Ansible para gerenciar contêineres lxc remotos?

2

Como posso usar o Ansible para executar tarefas em contêineres lxc em um servidor remoto?

Usamos o Ansible para implantar nosso código em vários servidores (máquinas físicas e virtuais).

Até agora, cada instância tinha um endereço IP público e um servidor ssh em execução, então tudo funcionava como um encanto. Mas, recentemente, tivemos que implantar em dois contêineres lxc em um servidor remoto.

Os dois contêineres são usados e não executam um servidor ssh (e gostaríamos de mantê-lo assim). Eu só posso conectar-me a eles usando o ssh para alcançar o host físico e depois me conectar ao lxc.

A única maneira que encontrei é um plug-in personalizado que nunca foi atualizado para a versão mais recente do Ansible 2.0 . Eu também chegou à lista de discussão com nenhum resultado até agora.

Alguém já conseguiu usar o Ansible em tal configuração?

    
por Thibault J 20.01.2016 / 11:04

2 respostas

0

Bem, como não consegui encontrar uma solução, acabei executando um servidor ssh em todos os contêineres do lxc.

Aqui está minha amostra .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
    
por 21.01.2016 / 16:24
1

Experimente o plug-in de conexão ansible-lxc-ssh de Pierre Chifflier, que funciona com o Ansible 2.x. Eu coloquei o plugin no local padrão definido em ansible.cfg, / usr / share / ansible_plugins / connection_plugins /

No arquivo de hosts do inventário, / etc / ansible / hosts, eu coloco o seguinte

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

Observe que você precisa passar o nome do contêiner como um argumento extra ssh. Certifique-se de substituir lxc_server pelo nome do seu host lxc.

    
por 10.03.2016 / 21:56