Comme vous le savez sans doute si vous n’êtes pas tombé sur cet article par hasard, avec cette dernière version de Debian, Linux-VServer devient obsolète. Cela signifie qu’il va bientôt falloir migrer vers une autre solution de virtualisation (KVM, Linux Container ou Xen). Cependant, vous avez peut-être besoin de poursuivre avec Linux-VServer quelque temps sans pour autant vous priver de la dernière version stable de Debian.
Si vous êtes conscients que le projet Debian arrête le suivi en sécurité de Linux-VServer et qu’il n’y aura plus de support de ce composant, suivez le guide. Sinon, je vous invite à passer à LXC.
Notes :
- Je pars du principe que vous avez déjà installé Debian Wheezy
- Si une partie d’une ligne de commande est surlignée comme ceci, cela signifie qu’elle peut ou doit être adaptée avec vos paramètres ou préférences
- Ce guide est conçu pour que dans la plupart des cas, vous puissiez vous contenter de faire des copier / coller
Dans le fichier /etc/apt/sources.list, on commente la ligne relative au cd-rom :
sed -i "s/^\(deb cdrom.*\)/#\1$/g" /etc/apt/sources.list
On met à jour le système :
apt-get update apt-get upgrade
On installe les outils de base et ceux qui seront nécessaires à la compilation :
apt-get install \ wget \ build-essential \ kernel-package \ initramfs-tools \ module-init-tools \ libncurses5-dev \ e2fslibs-dev \ dietlibc-dev \ pkg-config \ vlan \ libnss3 \ libnss3-dev \ debootstrap
On récupère la dernière version du patch Linux-VServer depuis le site http://vserver.13thfloor.at/Experimental/ :
wget -P /usr/src http://vserver.13thfloor.at/Experimental/patch-3.9.5-vs2.3.6.5.diff
On récupère le kernel correspondant depuis le site https://www.kernel.org/pub/linux/kernel/ ou https://www.kernel.org/ :
wget -P /usr/src https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.9.5.tar.gz
On se place dans /etc/src et on décompresse le kernel :
cd /usr/src
tar xvfz linux-3.9.5.tar.gz
On créé le lien symbolique /usr/src/linux qui pointe vers les sources du noyau :
ln -s linux-3.9.5 linux
On récupère la configuration du noyau actuellement en service puis on la copie dans celle du nouveau noyau :
cp /boot/config-3.2.0-4-686-pae /usr/src/linux/.config
Il est également possible de récupérer cette configuration dans le système de fichier procfs, si l’optionKernel .config support du noyau était activée pour le noyau en service :
zcat /proc/config.gz > /usr/src/linux/.config
ou encore dans le répertoire kernel du noyau actuellement en service :
cp /usr/src/linux-3.9.5/.config /usr/src/linux/
On se place dans /usr/src/linux et on applique le patch :
cd /usr/src/linux
patch -p1 < ../patch-3.9.5-vs2.3.6.5.diff
On lance menuconfig :
make menuconfig
et on active les options suivantes :
- « Enable loadable module support »
- « Linux VServer »
- « Automatically Assign Loopback IP »
- « Enable COW Immutable Link Breaking »
- « Enable Proc Security »
- « VServer Warnings »
- « VServer DevPTS Warnings »
Pensez à enregistrer vos modifications avant de quitter menuconfig : < Save >
On efface tous les fichiers créés dans le répertoire des sources du noyau par la cible build :
make-kpkg clean
On lance la compilation du kernel (l’argument « 4 » de l’option « --jobs » est à adapter en fonction du nombre de threads que peut exécuter votre machine simultanément) :
make-kpkg --initrd --append-to-version vserver --revision 1 kernel-image --jobs 4
Si la compilation s’est bien déroulée, un paquet .deb a été créé dans /usr/src.
On installe le nouveau kernel :
dpkg -i /usr/src/linux-image-3.9.5-vs2.3.6.5vserver_1_amd64.deb
Si vous êtes sur une machine distante à laquelle vous n’avez pas d’accès physique, je vous recommande très fortement de prendre la précaution détaillée dans mon article précédent avant de redémarrer la machine : https://blog.blaisethirard.com/grub-precaution-a-prendre-apres-la-compilation-d-un-nouveau-kernel-sur-un-serveur-distant/
On redémarre la machine :
reboot
Une fois la machine redémarrée, on vérifie que le noyau utilisé est bien celui que nous venons d’installer :
uname -r
Maintenant que nous sommes sur le noyau patché, il ne nous reste plus qu’à installer util-vserver. Pour cela, on télécharge la dernière version à cette adresse : http://people.linux-vserver.org/~dhozac/t/uv-testing :
wget -P /usr/src http://people.linux-vserver.org/~dhozac/t/uv-testing/util-vserver-0.30.216-pre3038.tar.bz2
On se place dans /etc/src et on décompresse l’archive :
cd /usr/src
tar jxvf util-vserver-0.30.216-pre3038.tar.bz2
On se place dans /etc/src/util-vserver-0.30.216-pre3038/ et on lance le script de configuration :
cd util-vserver-0.30.216-pre3038/
./configure --prefix=/usr --enable-release --mandir=/usr/share/man --infodir=/usr/share/info --sysconfdir=/etc --enable-dietlibc --localstatedir=/var --with-vrootdir=/home/srv
On compile util-vserver :
make make install make install-distribution
Le script vshelper est utilisé pour arrêter et redémarrer correctement les serveurs virtuels. Nous allons donc indiquer au noyau où il se trouve :
echo /usr/lib/util-vserver/vshelper >| /proc/sys/kernel/vshelper echo kernel.vshelper = /usr/lib/util-vserver/vshelper >> /etc/sysctl.conf
On démarre util-vserver :
service util-vserver start
Pour finir, on configure le démarrage automatique des services :
update-rc.d vprocunhide defaults update-rc.d util-vserver defaults update-rc.d vservers-default defaults
Linux-VServer est à présent installé et fonctionnel sur votre Debian Wheezy !