Linux-VServer HowTo
Notes sur l'installation de Linux-VServer sur une Debian Sarge / Linux 2.6
Sommaire
Introduction
Il y a déjà quelques HowTo's dans la place, le but ici n'est pas d'un ré-écrire un, mais plutot d'avoir un brain-dump de mon installation...
Pré-requis
Debian Sarge installé et à jour
Noyeau
Il faut avoir un noyeau récent. Plutôt que d'opter pour un noyeau de kernel.org, j'ai récupéré le dernier noyeau Debian dans unstable:
apt-get install linux-source-2.6.14
J'ai aussi récupéré le .config du package linux-image-2.6.14-2-686-smp pour avoir une base correcte (ftp://ftp.belnet.be/pub/debian/pool/main/l/linux-2.6/linux-image-2.6.14-2-686-smp_2.6.14-6_i386.deb)
On récupère la dernière version stable des patches Linux-VServer sur http://www.13thfloor.at/vserver/s_rel26/v2.01/
bzcat ../patch-2.6.14.3-vs2.01.diff.bz2 | patch -p1
Le patch ne s'applique pas entièrement sur un noyeau Debian, il faut patcher init/version.c à la main (trivial)
On vérifie les paramètres de Linux-VServer:
(todo)
On génère le noyeau:
(todo)
Outils
Je n'ai pas eu trop de succès avec util-vserver de la version stable, le problème venant plus que probablement des chois pris lors de la compilation du noyeau. J'ai donc décidé de recompiler les outils...
Pré-requis:
# apt-get install vlan dietlibc dietlibc-dev e2fslibs-dev beecrypt2 beecrypt2-dev
Les sources stables sont disponibles elles aussi sur http://www.13thfloor.at/vserver/s_rel26/v2.01/:
$ wget http://www.13thfloor.at/vserver/s_rel26/v2.01/util-vserver-0.30.209.tar.gz
Configure:
$ ./configure --prefix=/usr/local/vserver --with-vrootdir=/home/vservers --localstatedir=/var --sysconfdir=/etc [...] util-vserver 0.30.209 Features: CC: gcc, gcc (GCC) 3.3.5 (Debian 1:3.3.5-13) CXX: g++, g++ (GCC) 3.3.5 (Debian 1:3.3.5-13) CPPFLAGS: CFLAGS: '-g -O2 -std=c99 -Wall -pedantic -W' CXXFLAGS: '-g -O2 -ansi -Wall -pedantic -W -fmessage-length=0' build/host: i686-pc-linux-gnu/i686-pc-linux-gnu Use dietlibc: yes Build C++ programs: yes Build C99 programs: yes Available APIs: compat,v11,v13,fscompat,net,oldproc,olduts ext2fs Source: e2fsprogs syscall(2) invocation: alternative vserver(2) syscall#: 273/glibc Paths: prefix: /usr/local/vserver sysconf-Directory: /etc cfg-Directory: /etc/vservers initrd-Directory: $(sysconfdir)/init.d pkgstate-Directory: /var/run/vservers vserver-Rootdir: /home/vservers
Compilation
$ make # make install # make install-distribution
Post-install
(To do -- init scripts)
Création d'un serveur virtuel
Il existe un package vserver-debiantools qui automatise la création de serveurs sous Debian, mais il est basé sur les anciennes fonctions de Linux-VServer.
Pour faciliter les choses, on peux initialiser les valeurs par défaut:
- Mirroir: /etc/vservers/.defaults/apps/debootstrap/mirror contient ftp://ftp.belnet.be/pub/debian
Creation du vserver:
# vserver alesia build --hostname alesia.bulles-dsl --interface eth0:172.16.34.44/26 -m debootstrap -- -d sarge
Cleanup:
# vserver alesia start # vserver alesia enter alesia:/# LANG=C alesia:/# NO_INIT="makedev hwclock.sh urandom mountnfs.sh umountnfs.sh networking ifupdown umountfs halt klogd reboot keymap.sh console-screen.sh checkroot.sh mountvirtfs procps.sh mountall.sh checkfs.sh ifupdown-clean hwclockfirst.sh modutils" alesia:/# for FILE in $NO_INIT > do > update-rc.d -f $FILE remove > done
Post-install:
# vserver alesia enter alesia:/# LANG=C alesia:/# base-config new
Note: looks like base config looks at testing rather than sarge...
ssh -> listen on own address
Démarrage au boot
Les scripts de démarrage:
# update-rc.d vprocunhide defaults 90 10 # update-rc.d vservers-default defaults 91 09
Pour qu'un VServer démarre au boot: mettre default dans /etc/vservers/<vserver>/apps/init/mark