Ceci est une ancienne révision du document !
Table des matières
Libvirt
Avoir un clavier francais en accédant à une VM en VNC
Il faut pour cela modifier la configuration de la VM ( “domain” ) , et rajouter à l'intérieur de la balise “graphics” :
keymap='fr'
dpkg-reconfigure console-setup
- Editer la configuration de la VM , par exemple pour la machine nommée “maVM” :
virsh edit maVM
- Ajouter l'option pour obtenir par exemple :
... <graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' keymap='fr'/> ...
Il faut bien sur redémarrer la VM proprement :
- se connecter à la VM comme d'habitude, arreter la VM depuis le systeme :
ssh root@maVM root@maVM:~# halt
virsh stop maVM
virsh start maVM
Cette option doit se traduire par la présence dans la commande KVM lancée par libvirt de “-k fr”, vous pouvez vérifier avec un petit “ps aux”.
Configurer libvirt pour autoriser le boot PXE
Le reseau par defaut déclaré dans libvirt ne permet pas le boot réseau, pour le permettre il faut définir un réseau comme suit :
- exporter l'ancien reseau en XML :
# virsh net-dumpxml > /tmp/network.xml
- editer le fichier XML obtenu, et rajouter les balises <tftp> dans <ip> et <bootp> dans <dhcp>. Le fichier obtenu doit ressembler à :
<network> <name>default</name> <uuid>3f52b3a6-fd33-a46a-7d15-67c917fa9cc2</uuid> <forward mode='nat'/> <bridge name='virbr0' stp='on' delay='0' /> <ip address='192.168.122.1' netmask='255.255.255.0'> <tftp root='/mnt/data/tftpboot' /> <dhcp> <range start='192.168.122.2' end='192.168.122.254' /> <bootp file='pxelinux.0' /> </dhcp> </ip> </network>
- réimporter ce nouveau réseau :
# virsh net-destroy default # virsh net-define /tmp/network.xml # virsh net-autostart default # virsh net-start default
- verifier la presence des options passées a dnsmasq, par exemple :
$ ps aux | grep dnsmasq nobody 1739 0.0 0.0 21688 1116 ? S 10:03 0:02 dnsmasq --strict-order --bind-interfaces --pid-file=/var/run/libvirt/network/default.pid --conf-file= --except-interface lo --listen-address 192.168.122.1 --dhcp-range 192.168.122.2,192.168.122.254 --dhcp-lease-max=253 --dhcp-no-override --enable-tftp --tftp-root /mnt/data/tftpboot --dhcp-boot pxelinux.0
noter le “ –enable-tftp –tftp-root /mnt/data/tftpboot –dhcp-boot pxelinux.0”.
# apt-get install kvm-pxe
Assigner toujours la même adresse IP a une VM donnée
Il est possible de demander au dnsmasq utilisé par libvirtd d'assigner toujours la même adresse IP a une VM donnée.
Pour ce faire, il faut éditer le réseau utilisé (dans mon cas “default”) :
# virsh net-edit default
- dans <network><ip><dhcp> , ajouter une ligne pour chaque hote ressemblant à :
<host mac='52:54:00:83:a2:cf' name='debianlive' ip='192.168.122.10' />
ou vous l'aurez compris, il faut remplacer l'adresse MAC par celle de votre VM, mettre le nom que vous souhaitez, et une adresse IP appartenant au range défini
Vous croyez avoir fini ? que nenni : il faut ensuite redémarrer le réseau (et donc couper le réseau de toutes les VMs :'( ) de libvirt en utilisant les commandes suivantes :
# virsh net-destroy default # virsh net-start default
Exemple de fichier de configuration reseau complet
<network> <name>default</name> <uuid>3f52b3a6-fd33-a46a-7d15-67c917fa9cc2</uuid> <forward mode='nat'/> <bridge name='virbr0' stp='on' delay='0' /> <domain name='kvm.vm'/> <ip address='192.168.122.1' netmask='255.255.255.0'> <tftp root='/mnt/data/tftpboot' /> <dhcp> <range start='192.168.122.100' end='192.168.122.254' /> <host mac='52:54:00:83:a2:cf' name='debianlive' ip='192.168.122.10' /> <host mac='52:54:00:e9:94:16' name='debianunstable64' ip='192.168.122.11' /> <host mac='52:54:00:ef:10:8e' name='xivo' ip='192.168.122.22' /> <bootp file='pxelinux.0' /> </dhcp> </ip> </network>