Étapes de création d'un vserver sur une machine équipée de CentOS 5.1 et Linux-vserver
Par Alexandre le mardi, juin 3 2008, 22:10 - Hébergement Web - centos - hetzner - linux-vserver
Voici quelques notes par étapes sur la création d'un vserver sur un serveur équipé de CentOS et Linux-Vserver.
Quelques documents qui m'ont été utiles :
- vserver installation on Fedora Core 5
- vserver CentOS Howto
- How to virtualize an existing Linux server
Pré-requis
- Avoir un serveur équipé de CentOS 5.1 (voir mon billet à ce sujet, particulièrement utilr pour un serveur dédié Hetzner)
- Avoir installé le noyau et les outils Linux-vserver sur ce serveur (voir également un billet précédent à ce sujet)
1. Créer un vserver Centos
vserver nom-du-vserver build -m yum --hostname=hostname-du-vserver --interface nom-du-vserver0=eth0:ip-du-vserver/24 -- -d centos5
Vous pouvez changer /24 (255.255.255.0) également, selon votre configuration réseau (voir ceci ou les instructions du fournisseur de votre serveur dédié pour vous aider)
Probable qu'il ne se passe rien pendant plusieurs secondes après cette commande. Ce sera suivi d'une série d'opérations de yum. Cela va créer un vserver Centos 5 avec un contenu logiciel minimal (vraiment minimal : environ 100 Mo au total) qui pourra être augmenté plus tard avec yum et un peu d'amour.
2. Gestion des paquetages avec yum
Installer yum dans le vserver :
vyum nom-du-vserver -- install yum
(ça peut être long sans qu'il ne se passe rien en apparence, c'est normal)
Par défaut, les paquetages ne peuvent être installés dans le vserver que du serveur hôte. Donc ce que l'usager peut installer par défaut dans son vserver est assez limité.
Rendre la gestion et l'installation des paquetages avec yum possible dans le vserver :
vserver nom-du-vserver pkgmgmt internalize
3. Démarrage automatique, configuration réseau
Partir par défault le vserver au démarrage du serveur :
echo "default" > /etc/vservers/nom-du-vserver/apps/init/mark
Configurer la résolution DNS :
cp /etc/resolv.conf /home/vservers/nom-du-vserver/etc/
vserver nom-du-vserver start
Vous pouvez voir les vservers qui roulent avec la commande :
vserver-stat
Installer une couple de cossins qui vont être utiles plus loin :
vyum nom-du-vserver -- install openssh-server passwd vim-minimal
vserver nom-du-vserver enter
Test de la résolution DNS :
ping google.com
Ajustez aussi le fichier hosts de votre vserver :
vi /etc/hosts
Qui devrait contenir au moins cette ligne :
127.0.0.1 localhost.localdomain localhost nom-du-vserver
4. Mot de passe root, fuseau horaire, sshd
Configurer le fichier shadow, vérifier son intégrité et choisir le mot de passe root :
pwconv
pwck
passwd root
Configurer le fuseau horaire :
Pour Montréal:
ln -sf /usr/share/zoneinfo/America/Montreal /etc/localtime
Ou encore quelque chose de plus générique...
ln -sf /usr/share/zoneinfo/EST /etc/localtime
Configurer sshd pour qu'il écoute seulement l'IP du vserver :
vi /etc/ssh/sshd_config
Modifier la ligne :
ListenAddress ip-du-vserver
Démarrer sshd :
service sshd start
5. Anticiper les problèmes...
Exécutez cette commande pour régler ce problème de connexion ssh avec votre vserver Centos :
/bin/sed --in-place -e "s/^session.*required.*pam_loginuid.so/# session\trequired\tpam_loginuid.so/g" /etc/pam.d/*
(il est possible que ce soit requis de répéter suite à des mises à jour qui écraseront potentiellement l'effet de cette commande - la création de mon vserver est trop récente pour pouvoir dire si ce sera le cas)
exit
Dernière chose : vous pouvez augmenter maintenant la taille de la partition /tmp du vserver que vous venez de créer, limitée à 16 Mo par défaut (cette taille limitée m'a donné du trouble rapidement) :
vi /etc/vservers/nom-du-vserver/fstab
(changer size=... pour la taille de votre choix à la ligne /tmp)
Et voilà, un vserver Centos 5 de base fonctionnel. Il reste à y installer ce dont vous avez besoin avec yum. Jetez également un oeil à la documentation de la commande vserver au besoin.
man vserver
Ainsi que le document de référence avec toutes les options de configuration.
Troubleshooting
Problème : J'ai créé un vserver il y a quelques mois et ce n'est plus comme avant, la complicité que nous avions au départ s'est évaporée. Comment le quitter définitivement?
Solution : Avec la commande :
vserver nom-du-vserver delete
Problème : Quand j'essaie de changer le mot de passe root de mon vserver, j'obtiens cette erreur. J'ai peur.
passwd: root:system_r:unconfined_t:s0-s0:c0.c1023 is not authorized to change the password of root
Solution : Il faut désactiver SELinux, qui entre en conflit avec linux-vserver. Voir le début de ce billet pour voir comment désactiver SELinux sur un hôte Centos 5.1.
Problème : Je réussis à me connecter à mon vserver avec SSH mais il me déconnecte immédiatement. Je trouve ça un peu colon de sa part.
Solution : Exécutez cette commande pour régler ce problème de connexion ssh avec votre vserver Centos :
/bin/sed --in-place -e "s/^session.*required.*pam_loginuid.so/# session\trequired\tpam_loginuid.so/g" /etc/pam.d/*
Problème : Je ne peux pas faire redémarrer mon vserver, la commande reboot ne fonctionne pas. Ma détresse psychologique s'accroît et je pense à écouter un disque de Richard Abel.
Solution : Faites plutôt :
reboot -f
Commentaires
Wow, excellent document et choc toxique.
On se souviendra que le projet de Jacques Gélinas a été repris par d'autres, qui pour des raisons sur lesquelles je ne m'étendrai pas ici, ont dédémocratisé l'utilisation des vservers. Comparez la recette ci-dessus (plus le billet précédent) à la simplicité de http://linuxeduquebec.org/Vserver-s... et constatez comment le temps a transformé l'élégance en horreur.
Mais grâce à votre billet, au moins, ça redevient simple et je n'aurai pas à me péter les dents à deviner que je dois gosser dans PAM.
C'est un fait qu'il a fallu que je cherche pas mal pour arriver à ça.
C'est dommage parce que Linux-vserver est clairement la meilleure solution de virtualisation dans plusieurs situations et gagne à être connu. Mais c'est facile de décrocher vers autre chose - c'est pas clair que le newbie gosse ben ben longtemps, quand il voit l'éventail des méthodes différentes pour créer un vserver dans les docs officiels à http://linux-vserver.org/Building_G...