Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
schroot [Le 01/11/2010, 12:50]
92.150.247.55
schroot [Le 07/01/2023, 15:18] (Version actuelle)
Amiralgaby [Installation du serveur LAMP] utilisation de guillemets dans le script pour éviter les "words-splitting"
Ligne 30: Ligne 30:
   ​   ​
  
-===== Mise place d'un environnement chroot ===== +===== Mise en place d'un environnement chroot ===== 
-  * Création du répertoire :<​code>​sudo mkdir /​chroot</​code>​+  * Création du répertoire :<​code>​mkdir ​chroot</​code>​N'​importe quel répertoire peut faire l'​affaire. L'​exemple est donné avec le dossier **/chroot**, à changer à loisir. 
 + 
 +  * Installation d'une distribution (Ubuntu). Pour cela, on récupérera l'​ensemble des paquets. Pour du 64 bits :<​code>​sudo debootstrap --arch amd64 quantal /​chroot/​quantal http://​us.archive.ubuntu.com/​ubuntu/</​code>​Ou bien, pour installer l'​environnement en 32 bits :<​code>​sudo debootstrap --arch i386 quantal /​chroot/​quantal http://​us.archive.ubuntu.com/​ubuntu/</​code>​Après cela, le dossier **/​chroot/​quantal/​** contient l'​arborescence habituelle de la racine de la distribution Ubuntu Quantal Lynx 10.04. 
 + 
 +  * Pour conserver les logins utilisateurs,​ mots de passe, groupes etc du système hôte, ajouter ces lignes au fichier /​etc/​schroot/​default/​copyfiles :<​code>​ 
 +/​etc/​passwd 
 +/​etc/​shadow 
 +/​etc/​group 
 +/​etc/​sudoers 
 +/​etc/​hosts 
 +/​etc/​hostname 
 +</​code>​Pour conserver les dépôts de paquets (NE PAS FAIRE lorsque les distributions sont différentes...),​ ajouter cette ligne:<​code>​ 
 +/​etc/​apt/​sources.list 
 +</​code>​
  
-  * Installation d'une distribution (Ubuntu). Pour cela, on récupérera l'​ensemble des paquets :<​code>​sudo debootstrap --arch amd64 lucid /​chroot/​lucid http://​us.archive.ubuntu.com/​ubuntu/</​code>​Ou<​code>​sudo debootstrap --arch i386 lucid /​chroot/​lucid http://​us.archive.ubuntu.com/​ubuntu/</​code>​ 
  
   * [[:​tutoriel:​comment_modifier_un_fichier|Configuration du fichier]] **/​etc/​schroot/​schroot.conf**<​file>​   * [[:​tutoriel:​comment_modifier_un_fichier|Configuration du fichier]] **/​etc/​schroot/​schroot.conf**<​file>​
-[lucid+[quantal
-description=lucid +description=quantal 
-directory=/​chroot/​lucid+directory=/​chroot/​quantal 
 +users=user1,​user2,​...
 root-groups=root root-groups=root
 root-users=root root-users=root
 type=directory type=directory
-</​file>​ +aliases=default 
-===== Gestion du chroot ​===== +</​file>​Et remplacer "​user1",​ "​user2"​ par les utilisateurs ayant le droit d'​utiliser le chroot. La ligne peut être remplacée par "​groups=schroot"​ par exemple, en ajoutant les utilisateurs au groupe "​schroot"​. 
-  * Démarrer un environnement chroot :<​code>​schroot -b -c lucid</​code>​ +===== Utilisation courante ​===== 
-   +  * Pour se connecter dans un environnement chroot et avoir la main en ligne de commande :<​code>​schroot</​code>​ ou bien, si plusieurs environnements chroot sont installés :<​code>​schroot -c lucid</​code>​Pour quitter l'​environnement,​ utiliser les touches **Ctrl+d** ou bien la commande **exit**. 
-Lors du démarrage du chroot, schroot nous donne l'​identifiant du chroot, par exemple **lucid-00e8c158-e183-48ad-8407-272808c6b0c6**+ 
 +  * Démarrer un environnement chroot :<​code>​schroot -b -c lucid</​code>​Lors du démarrage du chroot, schroot nous donne l'​identifiant du chroot, par exemple **lucid-00e8c158-e183-48ad-8407-272808c6b0c6**
  
   * S'​identifier dans l'​environnement schroot :<​code>​schroot -r -c lucid-00e8c158-e183-48ad-8407-272808c6b0c6</​code>​   * S'​identifier dans l'​environnement schroot :<​code>​schroot -r -c lucid-00e8c158-e183-48ad-8407-272808c6b0c6</​code>​
Ligne 52: Ligne 66:
   * Stopper le chroot :<​code>​schroot -e -c lucid-00e8c158-e183-48ad-8407-272808c6b0c6</​code>​   * Stopper le chroot :<​code>​schroot -e -c lucid-00e8c158-e183-48ad-8407-272808c6b0c6</​code>​
  
-===== Exemple d'​utilisation =====+===== Exemple d'​utilisation ​avancée ​=====
  
-Nous allons installer un serveur [[LAMP|LAMP]] dans un environnement chroot. Le système exploitation hôte sera une distribution ubuntu. Par contre le système ​inviter ​sera une distribution ​debian.+Nous allons installer un serveur [[LAMP|LAMP]] dans un environnement chroot. Le système exploitation hôte sera une distribution ubuntu. Par contre le système ​invité ​sera une distribution ​Debian.
  
 ==== Configuration de schroot ==== ==== Configuration de schroot ====
Ligne 61: Ligne 75:
   * Installation d'une distribution Debian. Pour cela, on récupérera l'​ensemble des paquets :   * Installation d'une distribution Debian. Pour cela, on récupérera l'​ensemble des paquets :
  
-  debootstrap --arch amd64 lenny /chroot/lenny http://​ftp.fr.debian.org/​debian/​+  debootstrap --arch amd64 squeeze ​/chroot/squeeze ​http://​ftp.fr.debian.org/​debian/​
  
   * [[:​tutoriel:​comment_modifier_un_fichier|Configuration du fichier]] **/​etc/​schroot/​schroot.conf**,​ on ajoute notre nouvelle distribution debian.   * [[:​tutoriel:​comment_modifier_un_fichier|Configuration du fichier]] **/​etc/​schroot/​schroot.conf**,​ on ajoute notre nouvelle distribution debian.
 <​file>​ <​file>​
-[lenny+[squeeze
-description=lenny +description=squeeze 
-directory=/​chroot/​lenny+directory=/​chroot/​squeeze
 root-groups=root root-groups=root
 root-users=root root-users=root
 type=directory type=directory
-script-config=script-lenny+script-config=script-squeeze
 </​file>​ </​file>​
  
-  * On crée le fichier script-lenny qui a la même structure et que se trouve dans répertoire que script-defaults+  * On crée le fichier script-squeeze ​qui a la même structure et qui se trouve dans répertoire que script-defaults
  
-  touch /​etc/​schroot/​script-lenny+  touch /​etc/​schroot/​script-squeeze
  
-  * Puis, on édite le fichier **/​etc/​schroot/​script-lenny**+  * Puis, on édite le fichier **/​etc/​schroot/​script-squeeze**
 <​file>​ <​file>​
 # Default settings for chroot setup and exec scripts. # Default settings for chroot setup and exec scripts.
Ligne 84: Ligne 98:
  
 # Filesystems to mount inside the chroot. # Filesystems to mount inside the chroot.
-FSTAB="/​etc/​schroot/​mount-lenny"+FSTAB="/​etc/​schroot/​mount-squeeze"
 </​file>​ </​file>​
   * On copie le fichier /​etc/​schroot/​mount-defaults   * On copie le fichier /​etc/​schroot/​mount-defaults
  
-  cp /​etc/​schroot/​mount-defaults /​etc/​schroot/​mount-lenny+  cp /​etc/​schroot/​mount-defaults /​etc/​schroot/​mount-squeeze
  
-  * On comment ​les lignes dont le montage ne doit pas s'​effectuer+  * On commente ​les lignes dont le montage ne doit pas s'​effectuer
 <​file>​ <​file>​
 # mount.defaults:​ static file system information for chroots. # mount.defaults:​ static file system information for chroots.
Ligne 107: Ligne 121:
   ​   ​
 ==== Installation du serveur LAMP ==== ==== Installation du serveur LAMP ====
 +
 +=== Installation ===
  
   sudo -s   sudo -s
Ligne 113: Ligne 129:
   apt-get install apache2 mysql-server php5   apt-get install apache2 mysql-server php5
  
 +=== Démarrage automatique du serveur lamp ===
 +
 +Pour démarrer de façon automatique la chroot et tout les services que vous désirez, je vous propose ce script :
 +<code bash>
 +#!/bin/bash
 +
 +#​******************************************************************************
 +# File : /​etc/​init.d/​schrootlamp
 +#
 +# Auteur : Zarkxe
 +#
 +# Date create : Mon Nov  1 16:01:09 2010
 +# Description : démarrer de façon automatique la chroot et tout les services
 +# que vous désiré
 +#​******************************************************************************
 +
 +. /​lib/​lsb/​init-functions
 +
 +NAMESCRIPT="​schrootlamp"​
 +
 +do_start() {
 +
 + if [ ! -e "/​tmp/​schroot/​$NAMESCRIPT"​ ]; then
 +
 + SCHROOT_ID=$(schroot -b -c lenny)
 +
 + schroot -r -c "​$SCHROOT_ID"​ /​etc/​init.d/​mtab.sh
 + schroot -r -c "​$SCHROOT_ID"​ /​etc/​init.d/​mysql start
 + schroot -r -c "​$SCHROOT_ID"​ /​etc/​init.d/​apache2 start
 + schroot -r -c "​$SCHROOT_ID"​ /​etc/​init.d/​exim4 start
 +
 + mkdir /​tmp/​schroot/​
 + echo "​$SCHROOT_ID"​ >  /​tmp/​schroot/​$NAMESCRIPT
 +
 + elif [ -e "/​tmp/​schroot/​$NAMESCRIPT"​ ]; then
 + echo "​$NAMESCRIPT is already running"​
 + fi
 +}
 +
 +do_stop() {
 +
 + if [ -e "/​tmp/​schroot/​$NAMESCRIPT"​ ]; then
 + SCHROOT_ID=$(cat /​tmp/​schroot/​$NAMESCRIPT)
 + schroot -r -c "​$SCHROOT_ID"​ /​etc/​init.d/​mysql stop
 + schroot -r -c "​$SCHROOT_ID"​ /​etc/​init.d/​apache2 stop
 + schroot -r -c "​$SCHROOT_ID"​ /​etc/​init.d/​exim4 stop
 + schroot -e -c "​$SCHROOT_ID"​
 +
 + rm -R /​tmp/​schroot/​
 + elif [ ! -e "/​tmp/​schroot/​$NAMESCRIPT"​ ]; then
 + echo "​$NAMESCRIPT is not starting"​
 + fi
 +}
 +
 +case $1 in 
 + ​start)
 + log_daemon_msg "​Starting configuration"​ $NAMESCRIPT
 + if [[ $EUID = 0 ]]
 + then
 + do_start
 + log_end_msg 0
 + else
 + log_end_msg 1
 + echo "You are not root !"
 +
 + fi
 + ;;
 + stop)
 + log_daemon_msg ​ "​Stopping configuration"​ $NAMESCRIPT
 + if [[ $EUID = 0 ]]
 + then
 + do_stop
 + log_end_msg 0
 + else
 + log_end_msg 1
 + echo "You are not root !"
 + fi 
 + ;;
 + ​restart)
 + log_daemon_msg ​ "​restarting configuration"​ $NAMESCRIPT
 + if [[ $EUID = 0 ]]
 + then
 + do_stop
 + do_start
 + log_end_msg 0
 + else
 + log_end_msg 1
 + echo "You are not root !"
 + fi 
 + ;;
 + ​status)
 + if [[ $EUID = 0 ]]
 + then
 + if [ ! -e "/​tmp/​schroot/​$NAMESCRIPT"​ ]; then
 + echo "​$NAMESCRIPT isn't running"​
 + elif [ -e "/​tmp/​schroot/​$NAMESCRIPT"​ ]; then
 + SCHROOT_ID=$(cat /​tmp/​schroot/​$NAMESCRIPT)
 + echo "​$NAMESCRIPT is running : $SCHROOT_ID"​
 + fi
 + else
 + echo "You are not root !"
 + fi
 + ;;
 +     *)
 + log_daemon_msg ​ "​./​$NAMESCRIPT [start|stop|restart|status]"​
 + ;;
 +esac
 +</​code>​
  
 ===== Voir aussi ===== ===== Voir aussi =====
   * [[chroot|chroot]]   * [[chroot|chroot]]
-  * **(fr)** [[http://​ftp.traduc.org/​doc-vf/​gazette-linux/​html/​2008/​150/​lg150-C.html|Virtualiser sans virtualiser]],​ article sur l'​usage de chroot et schroot+  * **(fr)** [[https://​ftp.traduc.org/​doc-vf/​gazette-linux/​html/​2008/​150/​lg150-C.html|Virtualiser sans virtualiser]],​ article sur l'​usage de chroot et schroot
   * **(fr)** [[http://​cepcasa.info/​apt/​debootstrap.html|Installer Debian depuis une distribution Debian avec debootstrap]]   * **(fr)** [[http://​cepcasa.info/​apt/​debootstrap.html|Installer Debian depuis une distribution Debian avec debootstrap]]
   * **(en)** [[http://​www.debian-administration.org/​articles/​566|schroot - chroot for any users]]   * **(en)** [[http://​www.debian-administration.org/​articles/​566|schroot - chroot for any users]]
  • schroot.1288612235.txt.gz
  • Dernière modification: Le 01/11/2010, 12:50
  • par 92.150.247.55