Linux-VServer HowTo : Différence entre versions
(→Création d'un serveur virtuel) |
(→Noyeau) |
||
| Ligne 8: | Ligne 8: | ||
= Noyeau = | = Noyeau = | ||
| − | Il faut avoir un noyeau récent. Plutôt que d'opter pour un noyeau de kernel.org, j'ai | + | 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 | + | $ 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 ''.config'' du package ''linux-image-2.6.14-2-686-smp'' pour avoir une base correcte | + | 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 | + | 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 | + | /!\ 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: | 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 = | = Outils = | ||
Version du 29 décembre 2005 à 17:10
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/:
$ 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