Linux-VServer HowTo

Un article de Bulles.
Révision datée du 28 décembre 2005 à 15:53 par Philippe (discussion | contribs) (Liens)
Aller à : navigation, rechercher

Notes sur l'installation de Linux-VServer sur une Debian Sarge / Linux 2.6

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

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:

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

Liens