
Eu procuro uma ferramenta leve e completa de virtualização de sistema operacional.
Ele deve rodar em Linux e o sistema operacional dentro da virtualização também é Linux.
Meu caso de uso: quero testar nosso gerenciamento de configuração.
- Iniciar imagem base de uma distribuição Linux atual (Ubuntu e SuSE)
- Execute nosso gerenciamento de configuração (pilha salt)
- Verifique se o sistema operacional foi configurado corretamente e está funcionando.
Coisas que acho que não combinam:
- KVM/Qemu: muito pesado, não leve
- Docker: preciso de cron, ssh, apache dentro do sistema operacional. AFAIK Docker não é adequado aqui.
- chroot não é suficiente, pois o AFAIK vinculado a 0.0.0.0 não funciona (apache, sshd, ...)
Qual ferramenta (código aberto) poderia ser usada?
Responder1
A coisa mais próxima que consigo pensar éLXD.
LXD é um daemon de gerenciamento que usa LXC para a "virtualização"
A implementação interna é mais parecida com o Docker (o Docker costumava ser baseado na biblioteca LXC), mas o uso deve ser mais parecido com uma VM.
Na verdade, o que você está obtendo aqui é um processo init em um contêiner. Existem muitas imagens base diferentes para começar a aproximar um sistema Ubuntu, CentOS, Alpine ou outro sistema Linux. No entanto, não há emulação de hardware como nas VMs; todos os contêineres estão sendo executados no kernel do host.
O desenvolvedor líder tem uma série de blogsaquisobre como usar o LXD.
Eu uso LXD frequentemente em desenvolvimento e testes. Você pode configurá-lo com uma ponte privada para ser uma rede isolada da máquina local ou fazer uma ponte com sua interface física e expor os contêineres na rede externa. É assim que executo meu servidor doméstico para poder fazer ssh em cada contêiner/servidor como se fosse um servidor completo.
Para testes e trabalhos de desenvolvimento, a ponte de rede não está conectada a nenhum dispositivo físico, então posso configurar o cluster de banco de dados ou o que for necessário com rede real, mas apenas no meu laptop local.