EDIT 2018 : Retrouvez cette série de tuto dans une grosse mise à jour ici : Xen et OpenVswitch sont dans une Debian 9 – V.2018
Première partie du tutoriel sur la virtualisation « Xen et OpenVswitch sont dans une Debian« .
Nous allons procéder à l’installation de Xen.
Je pars du principe que votre LVM est déjà prêt et qu’un vg0 attend sagement que vous lui donniez vos vms.
Si ce n’est pas le cas, vous trouvez des infos dans le prélude de mon tutoriel : Préparation pour dédibox et LVM.
I – Installation
# apt-get install xen-linux-system xen-tools
Ensuite, nous allons demander à Debian de booter sur le bon noyau :
# dpkg-divert --divert /etc/grub.d/08_linux_xen --rename /etc/grub.d/20_linux_xen # update-grub
Puis, on reboot, et au démarrage, on vérifie que Xen est Ok :
# xentop
II – Configuration
Modification du fichier /etc/xen/xl.conf :
# default vif script to use if none is specified in the guest config vif.default.script="vif-openvswitch"
# default bridge device to use with vif-bridge hotplug scripts vif.default.bridge="brint"
Puis dans le fichier /etc/xen-tools/xen-tools.conf, modifiez les lignes suivantes :
lvm = vg0 ... fs = ext4 ... bridge = brint ... passwd = 1 ... nohosts = 1
III – Xen et le temps.
Le hic avec les VMs, c’est que sans contrôle du temps, ça drift rapidement.
Ma solution, un serveur NTP sur le Dom0 qui donne l’heure aux vm par le vlansys.
# apt-get install ntp
Ensuite, on modifie le fichier /etc/ntp.conf :
# Local users may interrogate the ntp server more closely. restrict 127.0.0.1 restrict 10.99.1.0 mask 255.255.255.0 restrict ::1 ... broadcast 10.99.1.255
On redémarre, puis on vérifie que le serveur ntp se connecte bien à la strate ntp :
# ntpq -p
IV – Création du rôle et du squelette
A – Rôle
Pour automatiser certaines choses lors de l’installation de la vm, on va utiliser un rôle.
Créer un fichier /etc/xen-tools/roles.d/tuto :
#!/bin/sh prefix=$1 if [ -e /usr/share/xen-tools/common.sh ]; then . /usr/share/xen-tools/common.sh else echo "Installation problem" fi< chroot ${prefix} /usr/bin/apt-get update chroot ${prefix} /usr/bin/apt-get upgrade -y installDebianPackage ${prefix} udev installDebianPackage ${prefix} htop installDebianPackage ${prefix} bash-completion installDebianPackage ${prefix} ntp cp -a /etc/xen-tools/skel2/* ${prefix}
On le rend exécutable :
# chmod +x /etc/xen-tools/roles.d/tuto
B – Création du squelette
Le squelette est un répertoire dans lequel nous allons mettre des fichiers qui seront copiés sur les vms lors de l’installation.
Il existe un répertoire /etc/xen-tools/skel mais le contenu de celui ci est copié de façon automatique avant l’exécution des rôles, ce qui me pose quelques soucis. Nous allons donc en faire un autre et demander sa copie dans le rôle.
# cd /etc/xen-tools/ # mkdir skel2 && cd skel2 # mkdir etc
Dans ce répertoire (/etc/xen-tools/skel2/etc), créez un premier fichier ntp.conf (/etc/xen-tools/skel2/etc/ntp.conf) :
driftfile /var/lib/ntp/ntp.drift statsdir /var/log/ntpstats/ statistics loopstats peerstats clockstats filegen loopstats file loopstats type day enable filegen peerstats file peerstats type day enable filegen clockstats file clockstats type day enable server 10.99.1.1 restrict 127.0.0.1 restrict ::1
Puis un fichier sshd_config (dans un sous répertoire ssh : /etc/xen-tools/skel2/etc/ssh/sshd_config)
Port 22 PermitRootLogin yes Protocol 2 HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key HostKey /etc/ssh/ssh_host_ecdsa_key HostKey /etc/ssh/ssh_host_ed25519_key UsePrivilegeSeparation yes KeyRegenerationInterval 3600 ServerKeyBits 1024 SyslogFacility AUTH LogLevel INFO LoginGraceTime 120 PermitRootLogin without-password StrictModes yes RSAAuthentication yes PubkeyAuthentication yes IgnoreRhosts yes RhostsRSAAuthentication no HostbasedAuthentication no PermitEmptyPasswords no ChallengeResponseAuthentication no X11Forwarding yes X11DisplayOffset 10 PrintMotd no PrintLastLog yes TCPKeepAlive yes AcceptEnv LANG LC_* Subsystem sftp /usr/lib/openssh/sftp-server UsePAM yes
Terminez avec dernier fichier hosts (/etc/xen-tools/skel2/etc/hosts) :
127.0.0.1 localhost
Et voila, notre hyperviseur est enfin prêt, nous allons pouvoir passer à la Partie II : Installation d’OpenVswitch.
Dans quel contexte as tu utilisé Xen ? En entreprise ? Pour de la virtualisation de poste de travail ou de serveurs ?
Salut
Virtualisation de serveurs. Utilisation en milieu pro sans encombres depuis plusieurs années maintenant.
Votre article est vraiment excellent. Moi, j’ai réussi à faire la virtualisation avec Xen grâce à un tutoriel vidéo sur http://www.alphorm.com/tutoriel/formation-en-ligne-xensources qui m’a donné un coup de pouce. Cependant, je trouve que votre tutoriel est très pertinent. Merci pour le partage.
petite erreur de frappe:
IV-A /etC/xen-tools/roles.d/tuto
Oui, je l’ai vu en refaisant la nouvelle version 😉