====== 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 [[tuto:ipasserelle:divers:extras_repo|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 < 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 < ifcfg-br0
DEVICE=br0
TYPE=Bridge
BOOTPROTO=dhcp
ONBOOT=yes
DELAY=0
EOF
* Pour une configuration en IP fixe
cat < 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 < 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 < 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