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 !!!