Archives par mot-clé : debian

Installation de Linux-VServer sur Debian GNU/Linux 7.0 (Wheezy)

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 !