Vserver sous debian

Lundi 16 janvier 2006, par Bernard // GNU/Linux

Une breve introduction au monde merveilleux des vservers.

Peut être une doc un peu plus complète une fois que j’aurais exploré les meandres de la bête... ;-)

Installation et configuration Vservers sous Debian.

Installation réalisée avec un noyau 2.6.8

Télécharger les sources du noyau :

# apt-get install kernel-source-2.6.8
# cd /usr/src
# tar -jxf kernel-source-2.6.8.tar.bz2

Installer le patch-vserver a partir du paquet Debian

# apt-get install kernel-patch-vserver

Installer les outils vservers via le paquet util-vserver

# apt-get install util-vserver

Compiler le Noyau

Les instructions sont dans :

local/usr/share/doc/kernel-patch-vserver/README.Debian,

mais cela depend de comment vous le faites...

Configuration du noyau d’abord

Vous avez besoin d’un dossier de config de noyau... Pas de config de noyau ? Vous pouvez employer celui qui est utilisé par le noyau debian de base et vous serez presque sûres que cela fonctionne, mais cela prendra un bon moment pour compiler (plusieurs heures) à moins que vous enleviez quelques options inutiles.

Pour obtenir le fichier de configuration du noyau Debian

# apt-cache search kernel-image-2.6.8  

On install les sources du paquet kernel-image correspondant au systeme

# cd /usr/src
# apt-get source kernel-image-2.6.8-2-686
# cd kernel-image-2.6.8-i386-2.6.8/config

On copie le fichier de config

# cp 686 /usr/src/kernel-source-2.6.8/.config

On configure si besoin

# cd /usr/src/kernel-source-2.6.8
# make menuconfig

Et enfin on Patch et on compile

# cd /usr/src/kernel-source-2.6.8
# export PATCH_THE_KERNEL=YES
# make-kpkg --rootcmd fakeroot --revision custom01 --added-patches vserver --append-to-version +vserver --initrd binary-arch

Une fois le paquet correspondant au noyau compilé avec le patch généré on install

# cd ..
# dpkg -i kernel-image-2.6.8+vserver_custom01_i386.deb
# dpkg -i kernel-headers-2.6.8+vserver_custom01_i386.deb

Reboot...

Créer un nouveau Vserver

On crée tout d’abord un fichier /etc/vservers.conf :

#Repertoire de stockage des vservers
VSERVERS_ROOT=/srv/vservers

#Quand on demarre ou on entre dans un vserver, son fichier /etc/mtab est généré à la #volet et gère les divers volumes montés à l'intérieur du vserver
GENERATMTAB=yes

On crée un fichiers de configuration pour le nouveau vserver.

Ex pour le vserver 01_ldap le fichier /etc/vservers/01_ldap.conf :

# Paramètre IP du vserver
IPROOT=10.95.81.17
IPROOTMASK=255.255.255.0
# Nom de l'interface réseau du vserver
IPROOTDEV=eth0
# Nom d'hote du vserver
S_HOSTNAME=ldap
# lock = on ne vous permet pas de créer un nouveau contexte dans votre contexte
# nproc = let ULIMIT-value be global for this context
S_FLAGS="lock nproc"
ULIMIT="-H -u 1000"
# Quelle sont les possibilitées du vserver
S_CAPS="CAP_NET_RAW CAP_NET_BIND_SERVICE"
# Lancement au démarrage
ONBOOT=yes

Installer le nouveau server 01_ldap (les paquets de base) :

# cd /srv/vserver

# debootstrap woody 01_ldap http://ftp.de.debian.org/debian

ou

# debootstrap woody 01_ldap<CODE>
     
ou
     
<CODE># debootstrap sarge 01_ldap<CODE>

Copier apt-config dans le vserver :

<CODE># cp /etc/apt/* /data/vservers/mysql4/etc/apt/

Entrer dans le vserver et executer la configuration de base :

# vserver 01_ldap start
# vserver 01_ldap enter
# base-config

REMARQUE : Penser à installer le paquet "locales" sinon vous aurez droit a pas mal d’erreurs en installant d’autres paquets, etc..

S_CAPS = Capacités d’un vserver

Quelles capacités doit avoir le vserver ? Affecter les valeurs S_CAPS dans /etc/vservers/xx.conf (xx = nom du vserver) :

CAP_NET_RAW
Peut créer des paquet IP

CAP_SYS_TIME
Peut definir des valeurs tel que dat, netdate, xntpd

CAP_NET_BROADCAST
Peut envoyer des paquet broadcast, i.e. Samba

CAP_NET_BIND_SERVICE
Utiliser les ports en dessous de 1024

CAP_CHOWN
Peut changer les droits et propriétaires sur les fichiers

CAP_SYS_ADMIN
Tout les droits, comme monter des systeme de fichiers !!!

Commandes de base de vserver

vserver XXX start|stop  : Démarrer ou arreter le vserver XXX
vserver XXX status  : Affiche le status du vserver XXX en cours d’execution
vserver XXX enter  : Entrer dans le vserver XXX

Génération des vservers avezc la nouvelle méthode

 [1]

La nouvelle méthode de généré un vservers permet surtout de se trouver avec une arborescence de configuration beaucoup plus complète.

vserver 01_ldap build -m skeleton --hostname ldap.domaine.local --interface eth0:10.0.0.1

La commande suivante permet de généré le vservers ainsi qu l’arborescence de configuration sous /etc/vservers/01_ldap.

Le seul problème c’est que l’arborescence du système propre au vserver qui est générée est très (trop) basique.

L’idéal est, apres avoir généré une arborescence pour le vserver via debootstrap (comme expliqué plus haut), de généré le vserver a proprement dit. Mais si l’on execute la commande tel quel l’uitilitaire vserver vous insulte en disant qu’il existe déja...

Solution, après avoir fait le debootstrap, on généré le vserver en ajoutant l’option -f afin de forcer et de recréer une seconde arborescence de système (celle de base). Ensuite on supprime le répertoire généré par l’utilitaire vserver et on renomme celui de debootstrap ( qui a été renommé en cours de route par la commande vserver) pour lui redonner le nom de départ. dans notre cas le répertoire est 01_ldap.

Après ca il ne vous reste plus qu’à faire mumuse avec votre beau vserver tout neuf... Bon courage.

Répondre à cet article


Documents joints

Caps_vservers
texte, 6.1 ko

Le differentes valerus de l’option CAPS.

Perl - Ispman - Perl
texte, 386 octets