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"
EOF
mv qemu.conf qemu.conf.default
cat <<EOF > qemu.conf
user = "qemu"
group = "kvm"
save_image_format = "lzop"
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

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