LinuxÉdu-Québec

Accueil À propos de nous Contact Plan du site
Accueil du site > Système d’exploitation > Vserver sous Mandriva 2006

Le mercredi 7 septembre 2005, par Benoit St-André, Pierre Lachance

Vserver sous Mandriva 2006

Nous vous avons présenté les Vservers (Installer et gérer) il y a quelques temps. Voici un texte qui aide à installer des Vservers sur une Mandriva.

Préparation du système

Installer un système serveur (pas de bureautique et multimédia) léger. N’installez pas les serveurs réseaux dont vous n’avez pas besoins (ex. : SaMBa).

Pour des raisons de sécurité, vous devrez faire une mise à jour du système avant de mettre vos serveurs en production.

La distribution Mandriva offre la possibilité d’ ajouter des sources distantes « main » et « contrib » (http://easyurpmi.zarb.org/) pour installer des paquetages suppémentaires. Pour installer les sources du GULUS, entrez ces lignes dans une console root :
- urpmi.addmedia main http://gulus.usherbrooke.ca/pub/distro/Mandrakelinux/official/2006.0/i586/media/main with media_info/hdlist.cz
- urpmi.addmedia contrib http://gulus.usherbrooke.ca/pub/distro/Mandrakelinux/official/2006.0/i586/media/contrib with media_info/hdlist.cz

Grâce au centre de contrôle Mandriva (Système - Configuration - Configurer votre ordinateur) arrêter les services non désirés et configurer le parefeu pour avoir accès au serveur apache et sshd.

Installer le noyau (joint au bas de ce texte dans l’archive cd_vservers). Ensuite, on crée l’image du noyau avec cette ligne de commande depuis /boot :

  • mkinitrd initrd-kernel-2.6.14.3-vs2.0.1.img 2.6.14.3-vs2.0.1

On doit maintenant ajouter ce noyau dans Lilo en se rendant dans le panneau de contrôle Mandriva- Démarrage- Configurer comportement... On clique sur suivant puis ajouter. Vous aurez à compléter une fenêtre comme ci-dessous (cliquer sur le bouton avancé) :

Installer linuxconf et linuxconf-util à partir d’une source contrib.

Puis, installer les paquetages vserver et vserver-admin (ci-dessous).

On doit redémarrer la machine sur le noyau vserver.

Création du premier vserver

Les vservers se créeront par défaut dans la partition racine de votre système. Si vous désirez plutôt les créer dans une autre partition il suffit de créer un lien symbolique vservers vers la partition désirée.

En root, on fait la commande vserver premier build (c’est long !) où premier est le nom de notre vserver.
- vserver premier build

Ouf ! Notre vserver premier est prêt. On entre dedans pour faire du ménage :

  • vserver premier enter

On démarre linuxconf en mode texte pour aller vérifier que tous les services sauf sshd, syslog et crond sont en mode manuel (non automatique) afin que seuls les services désirés soient activés lors du démarrage du vserver.
- linuxconfig —text (— text est utilisé pour demeurer en mode texte)

On vérifie la configuration réseau (avec linuxconf), l’adresse IP et le nom du serveur doivent être les mêmes que dans le fichier premier.conf.

On sort du vserver :

  • exit

On arrête httpd, mysqld et les autres serveurs... sur la racine afin d’éviter les conflits :

  • service httpd stop
  • service mysqld stop
  • ...

On redémarre le service sshd sur la racine, mais en utilisant v_sshd plutôt que sshd (pour ne pas occulter les serveurs ssh contenus dans les vservers :

  • service v_sshd restart

On s’assure qu’au démarrage aussi, le serveur racine démarrera v_sshd et non sshd :

  • chkconfig sshd off
  • chkconfig v_sshd on

On démarre le vserver :

  • vserver premier start

Clone de premier

Nous sommes prêt pour créer un vserver de base : newvserver, on clone le vserver premier pour faire vserver fonctionnel. [1] Newvserver

Ouf ! Notre vserver base est prêt. On entre dedans pour faire du ménage :
- vserver base enter

On démarre linuxconf en mode texte pour aller arrêter tous les services sauf sshd, syslog et crond.
- linuxconfig —text

On vérifie l’adresse ip (avec linuxconf)

On sort du vserver :
- exit

On arrête httpd, mysqld et les autres serveurs... sur la racine :
- service httpd stop
- service mysqld stop
- ...

On redémarre le service sshd sur la racine, mais en utilisant v_sshd plutôt que sshd (pour ne pas occulter les serveurs ssh contenus dans les vservers :
- service v_sshd restart

On s’assure qu’au démarrage aussi, le serveur MAIN démarrera v_sshd et non sshd :
- chkconfig sshd off
- chkconfig v_sshd on

On démarre le vserver :
- vserver base start

Voilà ! Vous pouvez faire des tests sur votre nouveau vserver.

Page aide-mémoire


Problème mysqld

Un bogue avec mysqld empêche de démarrer le service dans le vserver. On doit renommer le répertoire /var/lib/mysql en mysql_ori, on redémarrer le service mysqld, on cré les répertoire /var/lib/mysql/.tmp et /var/lib/mysql/tmp, on chmod mysql:mysql ces deux répertoire, et on redémarre le service. Si vous clonez le vserver premier avec la commande newvserver, mysqld démarrera correctement.


Problème klogd

Afin d’éviter des problèmes avec klogd (démarré avec syslogd), éditez le fichier /etc/init.d/syslog et commentez ce qui concerne klogd comme ci-dessous :


start() {
gprintf "Starting system logger: "
daemon syslogd $SYSLOGD_OPTIONS
RETVAL=$?
echo
#gprintf "Starting kernel logger: "
#daemon klogd $KLOGD_OPTIONS
#echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/syslog
return $RETVAL
}

Utiliser des applications X via ssh

  • Editer le fichier /etc/ssh/sshd_config sur le vserver et de changer la ligne
  • X11UseLocalHost yes pour X11UseLocalHost no
  • Reparter ensuite le service sshd.
  • Attention au fichier /etc/hosts, il doit contenir l’info correct comme : ipduvserver nom.duveserver EX :
    127.0.0.1 localhost
         192.168.1.100 toto.patate.com

Notes

[1] Sous Mandriva le vserver premier, créé avec vserver premier build ne sera pas fonctionnel :o(

3 Messages de forum

  • 2 octobre 2005 05:25
    Juste une petite remarque : ....(joint au bas de ce texte).... ? Il est où le noyeau ! ;-) J’ai pas eu beaucoup de succés avec vserver jusqu’à maintenant, mais dés que je sais où est le noyeau, je recommence ! Merci pour un bon article, Jean Christophe
  • 14 novembre 2005 14:04, par lassons

    petite question ! si l’on possede qu’une seule adresse ip public. Est t’il possible grace a des nom de domaines different d’acceder a des vservers differents ?

    exemple

    test.com => 172.242.10.1 => vserver1 test2.freedns.com => 172.242.10.1 => vserver2

    ...

    Amicalement sebastien.

  • 16 novembre 2005 17:26, par Pierre Lachance

    On peut faire pointer 2 noms de domaine sur la même machine (2 répertoire différents ou 2 vservers différents). C’est apache (celui qui répond sur le port 80) qui gère ça. Ça s’appelle des VirtualHost. Voici des exemples de virtualhost (fichier commonhttpd.conf)


    NameVirtualHost *:80
    <VirtualHost *:80>
     ServerName toto.qc.ca
     DocumentRoot /home/toto/public_html
    </VirtualHost>

    <VirtualHost *:80>
     ServerName toto2.qc.ca
     DocumentRoot /home/toto2/public_html
    </VirtualHost>

    <VirtualHost *:80>
        ServerName toto.org
        ProxyPass / http://192.168.1.114/ (adresse privé du vserver)
    </VirtualHost>

    Pour pointer sur un autre serveur (vserver) il faut activer le mod_poxy dans le apache de tête. Attention ! Mettre ProxyRequests Off dans votre config du mod_proxy. Sinon, un proxy ouvert deviendra votre serveur.

    Au plaisir.


Applications | LinuxÉdu-Québec | Revue de presse | Projets | Événements - colloques | Réflexion et opinion | Système d’exploitation