Création d'un environnement Chroot pour tester Centreon sans tout casser

pourquoi cette page ? Et bien, vous en avez marre de casser votre système a chaque installation ? L'utilisation de VM, bah ca vous gonfle... Voici le Chroot...

Petite info, j'utilise un Debian Lenny (testing)

Création de l'environnement

Pour cela, vous avez besoin du paquet debootstrap

aptitude install debootstrap

Utilisation de debootstrap pour la création de sont environnement

mkdir -p ~/chroot-env/etch
sudo cdebootstrap etch ~/chroot-env/etch/

Il ne reste plus qu'a attendre...

Aller dans sont environnement Chroot

Ensuite, il nous faut aller dans notre environnement, mais pour celà il faut avoir accès au /dev et /proc. C'est un peu plus pratique pour récup le réseau, démarrer les services ...

Voici un petit script rapidement fait, a vous de l'adapter: go_chroot.sh

#!/bin/bash
directory="~/chroot-env"

#on test le nombre d'arguments
if [ $# -ne 1 ] ; then
cat << EOT
Usage : $0 env
	etch : Debian stable version
	lenny : Debian testing version
EOT
	exit 1
fi

chroot=$1

if [ ! -d "$directory/$chroot" ] ; then
	echo "l'environnement chroot n'existe pas"
	exit 1
fi

echo "-> environement chroot $chroot"

#detection de la presence de /dev dans le chroot
mount_dev=$(mount |grep "$directory" |cut -d" " -f1 | grep "^/dev$" )

if [ "$mount_dev" = "/dev" ] ; then
	echo "-> /dev deja monte"
else
	echo "-> mount /dev"
	sudo mount --bind /dev $directory/$chroot/dev
fi

#detection de la presence de /proc dans le chroot
mount_proc=$(mount |grep "$directory" |grep "/proc" | cut -d" " -f1 )

if [ "$mount_proc" = "/proc" ] ; then 
	echo "-> /proc deja monte"
else
	echo "-> mount /proc"
	sudo mount -t proc /proc $directory/$chroot/proc
fi

#go dans le chroot
echo "-> go dans chroot"
sudo chroot $directory/$chroot /bin/bash 

Donc vous l'avez compris, il faut exécuter les deux commandes suivantes:

sudo mount --bind /dev ~/chroot-env/etch/dev
sudo mount -t proc /proc ~/chroot-env/etch/proc

Installation des pré-requis

Maintenant, on est dans notre chroot. Et bien apt rules :)

aptitude update
aptitude install mysql-server nagios2 php-pear lsb-release subversion-tools librrds-perl snmpd php5-snmp libsnmp-perl less vim rrdtool ssh  php5-gd php5-mysql php5-ldap 

On attend un petit moment ... et on supprime les paquets téléchargés

aptitude clean

= On backup...= Bah oui, on va pas tout refaire à chaque fois quand même.

On sort simplement du Chroot

exit

On "démonte" nos /dev et /proc

sudo umount ~/chroot-env/etch/dev
sudo umount ~/chroot-env/etch/proc

Et on backup !!!

cd ~/chroot-env
tar czf chroot-etch.tgz etch

Et voilà. :)

On test

Oui, j'ai oublié, ouvrez iceweasel (firefox) et http://localhost/

It works!

Vous pouvez simplement utilisez go_chroot.sh sur autant de console que vous le souhaité, pratique pour les tail -f.

Il ne vous reste plus qu'a tout casser :)