Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
|
schroot [Le 10/12/2010, 18:21] 82.246.157.31 |
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 invité 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 117: | Ligne 131: | ||
| === Démarrage automatique du serveur lamp === | === Démarrage automatique du serveur lamp === | ||
| - | Pour démarrer de façon automatique la chroot et tout les services que vous désiré, je vous propose ce script : | + | Pour démarrer de façon automatique la chroot et tout les services que vous désirez, je vous propose ce script : |
| <code bash> | <code bash> | ||
| #!/bin/bash | #!/bin/bash | ||
| Ligne 141: | Ligne 155: | ||
| SCHROOT_ID=$(schroot -b -c lenny) | SCHROOT_ID=$(schroot -b -c lenny) | ||
| - | schroot -r -c $SCHROOT_ID /etc/init.d/mtab.sh | + | 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/mysql start |
| - | schroot -r -c $SCHROOT_ID /etc/init.d/apache2 start | + | schroot -r -c "$SCHROOT_ID" /etc/init.d/apache2 start |
| - | schroot -r -c $SCHROOT_ID /etc/init.d/exim4 start | + | schroot -r -c "$SCHROOT_ID" /etc/init.d/exim4 start |
| mkdir /tmp/schroot/ | mkdir /tmp/schroot/ | ||
| - | echo $SCHROOT_ID > /tmp/schroot/$NAMESCRIPT | + | echo "$SCHROOT_ID" > /tmp/schroot/$NAMESCRIPT |
| elif [ -e "/tmp/schroot/$NAMESCRIPT" ]; then | elif [ -e "/tmp/schroot/$NAMESCRIPT" ]; then | ||
| Ligne 158: | Ligne 172: | ||
| if [ -e "/tmp/schroot/$NAMESCRIPT" ]; then | if [ -e "/tmp/schroot/$NAMESCRIPT" ]; then | ||
| SCHROOT_ID=$(cat /tmp/schroot/$NAMESCRIPT) | SCHROOT_ID=$(cat /tmp/schroot/$NAMESCRIPT) | ||
| - | schroot -r -c $SCHROOT_ID /etc/init.d/mysql stop | + | 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/apache2 stop |
| - | schroot -r -c $SCHROOT_ID /etc/init.d/exim4 stop | + | schroot -r -c "$SCHROOT_ID" /etc/init.d/exim4 stop |
| - | schroot -e -c $SCHROOT_ID | + | schroot -e -c "$SCHROOT_ID" |
| rm -R /tmp/schroot/ | rm -R /tmp/schroot/ | ||
| Ligne 178: | Ligne 192: | ||
| else | else | ||
| log_end_msg 1 | log_end_msg 1 | ||
| - | echo "You are no root !" | + | echo "You are not root !" |
| fi | fi | ||
| Ligne 190: | Ligne 204: | ||
| else | else | ||
| log_end_msg 1 | log_end_msg 1 | ||
| - | echo "You are no root !" | + | echo "You are not root !" |
| fi | fi | ||
| ;; | ;; | ||
| Ligne 202: | Ligne 216: | ||
| else | else | ||
| log_end_msg 1 | log_end_msg 1 | ||
| - | echo "You are no root !" | + | echo "You are not root !" |
| fi | fi | ||
| ;; | ;; | ||
| Ligne 215: | Ligne 229: | ||
| fi | fi | ||
| else | else | ||
| - | echo "You are no root !" | + | echo "You are not root !" |
| fi | fi | ||
| ;; | ;; | ||
| Ligne 226: | Ligne 240: | ||
| ===== 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]] | ||