Instalação automatizada de convidados do Lucid no Lucid KVM Server

4

Nós temos um servidor Ubuntu 10.04 rodando o KVM muito bem, mas estamos tendo problemas para descobrir a maneira mais limpa (e rápida) de fazer instalações autônomas de 10.04 convidados.

Requisitos:

  • Deve usar volumes LVM para os convidados armazenamento (sem algum qemu-img conversão ou algo assim)

  • Deve usar o virtio para rede e disco armazenamento (de preferência sem pirataria nos arquivos XML)

  • Deve usar um espelho local - por isso é rápido (por exemplo, < 5 minutos)

  • Realmente quer que seja totalmente automatizado e não interativo. (por exemplo, inicie e tenha um sistema funcional em execução alguns minutos depois)

  • gostaria que fosse capaz de especificar o endereço IP no início, então é fácil de chegar sem olhar o servidor dhcp.

  • gostaria que fosse capaz de especificar    diferentes sabores / distros /    versões, etc.

Opção 1: Nós não gostamos de fazer isso a partir do virt-manager UI - porque você tem que estar no servidor físico (não usando o virt-manager remotamente) para instalar em uma partição LVM. Isso funciona, mas você precisa estar executando o VNC e o Gnome no servidor e isso não é legal. Além disso, é interativo e você precisa clicar em várias opções, e ainda queremos escrever scripts de wrapper que fazem isso de qualquer maneira.

Opção 2: O vmbuilder do pacote python-vm-builder parece ser exatamente o que queremos - porque você pode especificar um espelho local (usando o apt-proxy para isso) mas não foi capaz de fazê-lo usar o volume LVM, nem usar o virtio para O disco.

vmbuilder kvm ubuntu --suite=lucid --flavour=virtual --arch=amd64 --mirror=http://192.168.1.1:9999/ubuntu -o --libvirt=qemu:///system --ip=192.168.1.94 --part=vmbuilder.partition --raw=/dev/VG0/LVtest --templates=mytemplates --firstboot=/root/vm/boot.sh --user=linuxadmin --name=linuxadmin --pass=secretpass --mem=256 --hostname=test --bridge=br0

Isto apenas ignora isso --raw = part e cria um arquivo de imagem qcow - e não usa o virtio. Eu suspeito que eu poderia converter o arquivo de imagem para um volume LVM e adicionar manualmente o material virtio no XML, mas isso parece chato e confuso.

Opção 3: É isso que estamos usando, mas não é o ideal - porque é complicado, não nos permite especificar o endereço IP, e realmente não podemos controlar dinamicamente (a partir do comando de instalação / script) alguns dos parâmetros que são codificados no arquivo de kickstart.

Manually create a Logical Volume -- then...

# virt-install --connect qemu:///system -n test -r 1024 --vcpus=1 --disk path=/dev/VG0/LVvm-test model=virtio --pxe --vnc --noautoconsole --os-type linux --os-variant virtio26 --accelerate --network=bridge:br0 --hvm

Isso vai para um servidor de inicialização PXE, que aponta para um servidor de instalação local com um arquivo de kickstart que faz muita configuração. Ele usa virtio para rede e disco, então é bom. Ele usa um espelho local e LVM, o que significa que atende aos nossos requisitos mínimos, mas gostaríamos que ele fosse 100% automatizado. Agora, você precisa se conectar ao console VNC (via virt-manager) e selecionar "Install" no instalador do Lucid - para que isso seja totalmente automático. E, claro, você tem que procurar no syslog para ver qual endereço IP conseguiu para que você possa enviar ssh para a caixa.

Certamente não somos os ÚNICOS que querem essa funcionalidade !!!

    
por mikehapner 22.09.2010 / 00:47

5 respostas

1

no RHEV, você simplesmente implanta VMs a partir de um modelo pronto, que é basicamente uma cópia da imagem do modelo original ou um instantâneo dela (para economizar espaço)

Tenho certeza de que, se você tiver uma imagem dourada de sua compilação com tudo nela, poderá configurá-la como um modelo, e seus scripts apenas serão clonados usando qemu-img ou até mesmo dd.

O modelo deve ter os detalhes específicos da VM, como as chaves ssh removidas (sys-unconfig no RHEL / Fedora, nenhuma ideia de como fazer isso no Ubuntu), então quando uma VM implementada a partir dele é iniciada, você obtém esses dados regenerado.

    
por 22.09.2010 / 07:52
1

Eu escolheria a opção 2, mas você terá que hackear o vmbuilder para isso, porque ele não usa o mount-by -UUID (e assim, mesmo se você alterar o modelo XML libvirt para usar virtio, o vmbuilder irá codificar / dev / sd * para / etc / fstab); --raw deve funcionar, embora - por favor arquive um bug para isso.

Pessoalmente, estou pensando em usar um combo de virt-install (para criar VM e inicializar seu disco) e o debian-installer com inicialização PXE no modo automático com o arquivo preseed.

    
por 02.10.2010 / 14:54
0

Que tal dar ao Cobbler ( link ) uma tentativa?

    
por 02.10.2010 / 17:18
0

Eu já fiz esse sistema. Eu estava usando o boot PXE com arquivo preseed, fantoche e sabayon. Como resoult o sistema foi instalado com root passwd, alguns usuários, perfil de usuário totalmente atualizado, ssh, openoffice e outros.

Houve um problema com o sabayon e o firefox.

MAS! Tudo isso leva cerca de 5-10 minutos para implantar no meu sistema.

Outra maneira era apenas fazer alguns clones com o dd e atualizá-los com o fantoche.

    
por 05.05.2011 / 13:27
0

É muito fácil aceitar sua terceira opção e fazer com que o instalador lucid comece automaticamente, em vez de esperar que você pressione enter.

No nosso caso, eu recomendo o ISO e inicializo a partir dele. Basta alterar o isolinux.cfg para ter um rótulo padrão. Fazê-lo para o PXE é basicamente a mesma coisa.

Então você pode especificar qualquer coisa (incluindo IP!) usando um arquivo preseed.

link

    
por 25.06.2011 / 20:30