Projet

Général

Profil

Libvirt (ancien) » Historique » Version 18

« Précédent - Version 18/61 (diff) - Suivant » - Version actuelle
Laurent GUERBY, 11/04/2013 13:43


Libvirt

Resources/Liens

  • libvirt

http://builder.virt-tools.org/artifacts/libvirt-virshcmdref/html/index.html
http://docs.fedoraproject.org/en-US/Fedora/13/html/Virtualization_Guide/chap-Virtualization-Managing_guests_with_virsh.html

  • virt-install et preseed sans server web et pxe:

http://honk.sigxcpu.org/con/Preseeding_Debian_virtual_machines_with_virt_install.html

Installation VM sans bridge avec routage static (en /32 pour l'ipv4)

Note: tous les fichiers utilisés et créés ne sont peut être pas à jour, voir ici pour les dernières version: http://git.tetaneutral.net/libvirt.git/

Le répertoire /etc/libvirt/ttnn cité plustard est géré dans ce git.

Configuration de la libvirt

On créé un réseau libvirt qui fait rien (déjà fait sur n7):

cat > libvirt_dump_network.xml <<EOF
<network ipv6='yes'>
<name>dump-net</name>
<bridge name='dumpbr0' />
</network>
EOF

virsh net-define libvirt_dump_network.xml
virsh net-autostart dump-net
virsh net-start dump-net

On créé un hook libvirt (déjà fait sur n7):

mkdir -p /etc/libvirt/ttnn/hooks
ln -s /etc/libvirt/ttnn/hooks /etc/libvirt/hooks
vi /etc/libvirt/hooks/qemu
----8<--------------->8----
#!/bin/bash

name="$1" 
operation="$2" 
suboperation="$3" 

[ "$operation" != "start" ] && exit 0
[ "$suboperation" != "begin" ] && exit 0

# get interface from the libvirt xml
interface=$(cat - | sed -ne "/vnet/s/.*dev='\([^']*\)'.*/\1/gp")

[ -f /etc/libvirt/ttnn/${name}.conf ] && source /etc/libvirt/ttnn/${name}.conf

[ "$ip" -o "$ip6" ] && brctl delif dumpbr0 $interface
[ "$ip" ] && ip route add $ip/32 dev $interface
[ "$ip6" ] && ip route add $ip6/56 dev $interface
[ "$ip6" ] && ip -6 addr add fe80::31/64 dev $interface
exit 0
----8<--------------->8----

Preparation de l'installer

Pour une squeeze on met à jour virtinst (déjà fait sur n7):

wget http://ftp.us.debian.org/debian/pool/main/v/virtinst/virtinst_0.600.3-3_all.deb
dpkg -i virtinst_0.600.3-3_all.deb

On install le preseed.cfg attaché à la page dans /etc/libvirt/preseed.cfg (déjà fait sur n7)

Installation d'une VM

Creation du disk (déjà fait sur n7):

lvcreate -n picttn -L 50G /dev/raid5

Configuration du routage static:

vi /etc/libvirt/ttnn/picttn.conf 
# le /32 ipv4
ip="91.224.148.252" 
# le /56 ipv6
ip6="2a01:6600:8080:FC00::" 

Lancement de l'installation via le réseau natter de libvirt

virt-install -n picttn -r 2048 --os-type=linux \
    --autostart \
    --disk /dev/raid5/picttn,bus=virtio,cache=none,io=native \
    --network network=default,model=virtio \
    --nographics \
    --noreboot \
    --wait -1 \
    --location http://ftp.debian.org/debian/dists/wheezy/main/installer-amd64/ \
    --serial pty \
    --initrd-inject /etc/libvirt/ttnn/preseed.cfg \
    --initrd-inject /etc/libvirt/ttnn/picttn.conf \
    --initrd-inject /etc/libvirt/ttnn/postinstall.sh \
    --extra-args "console=ttyS0,9600n8 DEBIAN_FRONTEND=text auto priority=critical hostname=picttn domain=le-pic.org" 

Une fois l'installation terminée, on change la conf réseau:

EDITOR="sed -ie s/default/dump-net/g" virsh edit picttn

On peux démarrer la VM

virsh start picttn
virsh console picttn

Ensuite on peux se connecte à la VM

ssh root@2a01:6600:8080:FC00::1

Le /etc/network/interfaces IPv4 après installation

iface eth0 inet static
    address 91.224.148.xxx
    netmask 32
    up ip route add 91.224.148.0/32 dev eth0
    up ip route add default via 91.224.148.0