Conversão de contêiner do Linux para Vagrant e vice-versa

1

A situação é a seguinte: nós temos um lxc (linux-container), que contém uma distribuição Debian Squeeze, construída com um arquivo preseed. Nós queríamos adicionar alguns pacotes extras (pacotes para o OMF testbed) que não fazem parte da lista de pacotes principal, contrib ou non-free debian. O objetivo é (/ era) distribuir o arquivo preseed para que outros usuários possam facilmente usar a distribuição debian (com os novos pacotes) em seu container linux. Mas o LXC não parece oferecer a possibilidade de adicionar repositórios extras (ou perdemos algo) na instalação de onde pacotes adicionais podem ser baixados e instalados.

A solução que analisamos é o uso do Vagrant em combinação com o Chef, onde primeiro criamos o contêiner do linux, e então convertemos esse contêiner do linux em um vagrant box, vamos vagrant em combinação com chef adicionar nossos próprios pacotes (a partir dos repositórios omf) e depois convertê-lo de volta para um contêiner linux. Dessa forma, nós distribuímos o arquivo preseed do container linux, o VagrantFile e talvez algum shell script para fazer conversões.

Mas como isso é feito? É possível converter um contêiner do linux (/ var / lib / lxc / nameContainer / rootfs) em uma .box? Ou é possível converter um .ext2 / .ext4 / .img (poderíamos converter o container linux primeiro em um) para um .box? E podemos converter de volta (da VM Vagrant gerada para um container linux)? Não conseguimos encontrar nenhuma informação sobre este tópico (o que não é um bom sinal, obviamente ...)

Agradecemos antecipadamente

Glenn

    
por atobi 05.07.2012 / 15:20

1 resposta

0

Não há maneira automatizada, não. Ou pelo menos nada que eu pudesse encontrar.

No entanto, o LXC de armazenamento é essencialmente um chroot.

Você poderia:

  • pegue o "chroot" ( rootfs )
  • adicione um kernel e o grub, se necessário
  • transforme-o em um sistema de arquivos em um disco virtual
  • adicione um gerenciador de inicialização
  • adicione a configuração clássica de inicialização ( /etc/fstab e co)
  • crie uma VM do VirtualBox em torno desse disco virtual
  • converta-o em uma caixa Vagrant
  • crie uma VM a partir da caixa Vagrant, transforme-a como quiser
  • extrair o sistema novamente do disco da VM
  • coloque de volta no seu chroot, depois de uma limpeza se você quiser remover o kernel e fazer o grub
por 05.07.2012 / 17:37