Installation d'un hôte sous CentOS 5 pour héberger des machines virtuelles
Configuration des dépôts
Configurer les dépôts RPMForge, EPEL, ATRpms, fws (voir cette page)
Installation des outils de base
Certains outils sont indispensables
yum --enablerepo=rpmforge install htop screen strace
Installation des outils de virtualisation
yum --enablerepo=epel --enablerepo=fws install virt-stack
Pour avoir les dernières versions:
yum --enablerepo=epel --enablerepo=fws --enablerepo=fws-testing install virt-stack
Configuration de l'interface "interne" en mode bridge
Pour pouvoir connecter les VM sur le réseau local (ou les réseau locaux à l'hôte physique, il peut s'agir de DMZ, ou n'importe quel sous-réseau connecté à l'hôte physique), il faut que ces interfaces fassent partie d'un bridge (=switch virtuel)
cd /etc/sysconfig/network-scripts cat <<EOF > ifcfg-eth0 DEVICE=eth0 HWADDR=00:16:76:D6:C9:45 ONBOOT=yes BRIDGE=br0 EOF
En adaptant l'adresse mac (ici 00:16:76:D6:C9:45)
- Pour un bridge configuré via DHCP:
cat <<EOF > ifcfg-br0 DEVICE=br0 TYPE=Bridge BOOTPROTO=dhcp ONBOOT=yes DELAY=0 EOF
- Pour une configuration en IP fixe
cat <<EOF > ifcfg-br0 DEVICE=br0 TYPE=Bridge BOOTPROTO=static IPADDR=192.168.7.2 NETMASK=255.255.255.0 BROADCAST=192.168.7.255 NETWORK=192.168.7.0 ONBOOT=yes DELAY=0 EOF
Configuration de libvirt
Déplacez le fichier de configuration par défaut. Il est conseillé de le conserver car il est très commenté
cd /etc/libvirt mv libvirtd.conf libvirtd.conf.default cat <<EOF > libvirtd.conf listen_tls = 0 unix_sock_group = "libvirt" unix_sock_rw_perms = "0770" log_level = 1 log_filters="2:libvirt 1:qemu 2:util" log_outputs="2:file:/var/log/libvirt/daemon.log" auth_unix_ro = "none" auth_unix_rw = "none" EOF mv qemu.conf qemu.conf.default cat <<EOF > qemu.conf user = "qemu" group = "kvm" save_image_format = "lzop" mac_filter = 0 EOF
Connexion distante à libvirt
Le plus simple est d'utiliser un tunnel SSH. Pour cela, nous allons utiliser un compte avec des privilèges réduits:
Création d'un utilisateur aux privilèges réduits
groupadd libvirt useradd -c 'Firewall Services' -m -d /home/fws -s /bin/bash fws usermod -a -G libvirt fws
Mettre en place une authentification SSH par clef (sans mot de passe)
su - fws cd mkdir -p .ssh chmod 700 .ssh touch .ssh/authorized_keys chmod 600 .ssh/authorized_keys
Puis placer votre clef publique dans le fichier authorized_keys
Démarrage auto de libvirt
Le démon libvirt doit démarrer automatiquement:
chkconfig libvirtd on chkconfig ksmd on
Monitoring
Le monitoring sera assuré par Zabbix. Un proxy sera installé sur la machine physique pour pouvoir remonter les info de toutes les machines virtuelles
yum --enablerepo=rpmforge --enablerepo=fws install zabbix-agent zabbix-proxy-sqlite3 --exclude=*i386