Linux-VServer HowTo : Différence entre versions
(→Noyeau) |
(→Outils) |
||
Ligne 61: | Ligne 61: | ||
Les sources stables sont disponibles elles aussi sur http://www.13thfloor.at/vserver/s_rel26/v2.01/: | Les sources stables sont disponibles elles aussi sur http://www.13thfloor.at/vserver/s_rel26/v2.01/: | ||
+ | $ cd /usr/src | ||
$ wget http://www.13thfloor.at/vserver/s_rel26/v2.01/util-vserver-0.30.209.tar.gz | $ wget http://www.13thfloor.at/vserver/s_rel26/v2.01/util-vserver-0.30.209.tar.gz | ||
+ | $ tar xzf util-vserver-0.30.209.tar.gz | ||
− | + | Configuration: nous n'allons pas installer le paquet aux endroits habituels: | |
+ | * L'ensembles des programmes et librairies sous ''/usr/local/vserver'' pour ne pas mélanger avec d'autres paquets | ||
+ | * Les serveurs virtuels irons dan /home/vservers | ||
+ | |||
+ | $ cd util-vserver-0.30.209 | ||
$ ./configure --prefix=/usr/local/vserver --with-vrootdir=/home/vservers --localstatedir=/var --sysconfdir=/etc | $ ./configure --prefix=/usr/local/vserver --with-vrootdir=/home/vservers --localstatedir=/var --sysconfdir=/etc | ||
[...] | [...] | ||
Ligne 91: | Ligne 97: | ||
vserver-Rootdir: /home/vservers | vserver-Rootdir: /home/vservers | ||
− | Compilation | + | Compilation: |
$ make | $ make | ||
# make install | # make install | ||
# make install-distribution | # make install-distribution | ||
− | Post-install | + | Post-install: s'assurer que ''/home/vservers'' est bien ''chroot barrier'' et mettre les permissions sur ''/proc'' |
− | + | # setattr --barrier /home/vservers | |
+ | # /usr/local/vserver/lib/util-vserver/vprocunhide | ||
= Création d'un serveur virtuel = | = Création d'un serveur virtuel = |
Version du 29 décembre 2005 à 17:21
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 utilisé les sources du dernier noyeau Debian dans unstable:
$ apt-get install linux-source-2.6.14 $ cd /usr/src $ tar xjf linux-source-2.6.14.tar.bz2
J'ai aussi récupéré le fichier de configuration .config du package linux-image-2.6.14-2-686-smp pour avoir une base de configuration correcte.
$ cd /tmp $ wget 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 $ ar xv linux-source-2.6.14.tar.bz2 data.tar.gz $ tar xzvf data.tar.gz ./boot/config-2.6.14-2-686-smp $ cp boot/config-2.6.14-2-686-smp /usr/src/linux-source-2.6.14/.config
On applique la dernière version stable des patches Linux-VServer sur http://www.13thfloor.at/vserver/s_rel26/v2.01/
$ cd /usr/src $ wget http://www.13thfloor.at/vserver/s_rel26/v2.01/patch-2.6.14.3-vs2.01.diff.bz2 $ cd linux-source-2.6.14 $ 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:
$ make menuconfig
La section Linux-VServer resemble à ceci:
[*] Enable Legacy Kernel API [ ] Show a Legacy Version ID [ ] Disable Legacy Networking Kernel API [*] Enable Proc Security [*] Enable Hard CPU Limits [ ] Limit the IDLE task Persistent Inode Context Tagging (UID24/GID24) ---> [ ] Tag NFSD User Auth and Files [ ] VServer Debugging Code
Génération d'un noyeau Debian:
$ fakeroot make-kpkg \ --revision 2.6.14.vs201 \ --append_to_version -1-vs2.0.1-686-smp \ --us --uc \ --rootcmd fakeroot \ --initrd \ kernel_image kernel_headers
Et finalement installation:
# dpkg -i /usr/src/kernel-image-2.6.14-1-vs2.0.1-686-smp_2.6.14.vs201_i386.deb
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/:
$ cd /usr/src $ wget http://www.13thfloor.at/vserver/s_rel26/v2.01/util-vserver-0.30.209.tar.gz $ tar xzf util-vserver-0.30.209.tar.gz
Configuration: nous n'allons pas installer le paquet aux endroits habituels:
- L'ensembles des programmes et librairies sous /usr/local/vserver pour ne pas mélanger avec d'autres paquets
- Les serveurs virtuels irons dan /home/vservers
$ cd util-vserver-0.30.209 $ ./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: s'assurer que /home/vservers est bien chroot barrier et mettre les permissions sur /proc
# setattr --barrier /home/vservers # /usr/local/vserver/lib/util-vserver/vprocunhide
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