Connaissez-vous debootstrap ?
ATTENTION : cet article est peut-être obsolète.
Récemment, j’ai voulu monter un serveur WebDAV chez un collègue, pour partager des calendriers. J’ai d’abord configuré et testé le service en local, sur mon ordinateur portable, puis j’ai transmis les fichiers de configuration au collègue. Pour ne pas mettre le bazar dans mon système, j’ai reconstitué dans un dossier un système Linux tout neuf, tout propre, avec l’aide de debootstrap.
Il y a plusieurs manières de tester une nouvelle configuration, une nouvelle application, un nouveau service sur un système Linux propre :
- disposer d’une machine libre, installer un système dessus,
- jouer avec les machines virtuelles, comme
kvmouqemu, - installer un système en chroot.
J’ai utilisé cette dernière possibilité. Les distributions basées sur Debian disposent du magnifique debootstrap, un utilitaire qui télécharge tous les paquets nécessaires depuis les depôts, puis les installe dans un dossier du système de fichiers.
On installe tout d’abord debootstrap :
$ sudo apt-get install debootstrap
Puis on lui demande l’installation d’une distribution dans un dossier local :
$ sudo debootstrap dapper /mnt http://fr.archive.ubuntu.com/ubuntu/
Dans cette commande, on a demandé l’installation de la distribution Dapper Drake dans le répertoire /mnt, en utilisant le miroir http://fr.archive.ubuntu.com/ubuntu/. Ce dernier champ est facultatif ; par défaut, c’est le miroir que vous utilisez pour la distribution hôte qui est utilisé.
Ce qui est intéressant, c’est que, sous Edgy, je vais pouvoir télécharger et installer une distribution différente, correspondant à la machine cible. La liste des distributions disponibles se trouve dans /usr/lib/debootstrap/scripts/. Sous Ubuntu Edgy, j’aurais très bien pu installer Debian Sarge[1].
Le système installé est le système de base, minimal. Pour l’utiliser, on procède en deux étapes :
Monter le pseudo système de fichiers /proc dans la cible :
$ sudo mount -t proc none /mnt/proc
La distribution cible aura ainsi accès aux paramètres du noyau de la distribution hôte.
Chrooter dans le répertoire cible :
$ sudo chroot /mnt
Vous obtenez alors un accès root dans la distribution cible. Vous pouvez installer des nouveaux logiciels avec apt-get, lancer ou arrêter des services, etc.
deboostrap permet donc de monter très facilement des pseudo-serveurs de test, sans toucher à la configuration de la machine hôte. Vous pouvez également utiliser les prisons chroot pour isoler les services critiques du reste du système.
La page de manuel de debootstrap vous donnera toutes les infos sur cet outil très pratique, dont seulement une partie des fonctionnalités est présentée ici.
Notes
[1] Il faut alors spécifier un miroir Debian à la place du miroir Ubuntu.