TP sysres IMA5sc 2018/2019 G4 : Différence entre versions

De Wiki d'activités IMA
(Création des conteneurs)
(Création des partitions)
Ligne 18 : Ligne 18 :
 
Et finalement, nous avons lancé Debootstrap qui installe un système Debian de base avec les dépendances spécifiées : '''debootstrap --include=apache2,vi stable /tmp/fs1'''.
 
Et finalement, nous avons lancé Debootstrap qui installe un système Debian de base avec les dépendances spécifiées : '''debootstrap --include=apache2,vi stable /tmp/fs1'''.
 
Cette commande prend un peu de temps (5 à 10 min). Une fois que debootstrap a fini, il faut répéter l'opération deux fois : démonter ''disk1'', le copier dans deux disques ''disk2'' et ''disk3'', créer les systèmes de fichiers ''fs2'' et ''fs3'' puis remonter les 3 disques sur leur système de fichier respectif.
 
Cette commande prend un peu de temps (5 à 10 min). Une fois que debootstrap a fini, il faut répéter l'opération deux fois : démonter ''disk1'', le copier dans deux disques ''disk2'' et ''disk3'', créer les systèmes de fichiers ''fs2'' et ''fs3'' puis remonter les 3 disques sur leur système de fichier respectif.
 +
 +
''Remarque:'' Nous avions dans un premier temps oublié d'exécuter la commande '''echo "proc /proc proc defaults 0 0" >> rootfs/etc/fstab''' permettant  la préparation du montage du pseudo système de fichier /proc. Cela entraînait une erreur lors de la création des conteneurs.
  
 
==Commutateur et interfaces virtuels==
 
==Commutateur et interfaces virtuels==

Version du 12 novembre 2018 à 11:37

Présentation du Sujet

Séance 1 : 12/11/2018

Dans cette séance nous devions était de créer des conteneurs "à la main". L'objectif étant de créer 3 conteneurs connectés entre eux via un commutateur virtuel. Un d'entre eux est également connecté au commutateur virtuel de la machine de TP étant sur bridge. Ce sera le mandataire inverse qui permettra de rediriger les flux vers les différentes machines.

Création des partitions

Dans un premier temps, nous avons créé une partition pour bootstrap. Pour cela, après s'être mis en su, nous avons utilisé les commandes suivantes:

  • dd if=/dev/zero of=/disk1 bs=1024k count=1024 : Copie d'un fichier nul. L'argument bs (block size) définit une taille de partition de 10Go.
  • mkfs /disk1 : Permet de l'utiliser en tant que partition.
  • mkdir /tmp/fs1 : Création de l'endroit où sera initialisé le file system.
  • mount –o loop disk1 /tmp/fs1 : Monte la partition sur ce système de fichiers.
  • http_proxy=http://proxy.polytech-lille.fr:3128 : Permet la prise en compte du proxy pour l'ajout des dépendances.


Et finalement, nous avons lancé Debootstrap qui installe un système Debian de base avec les dépendances spécifiées : debootstrap --include=apache2,vi stable /tmp/fs1. Cette commande prend un peu de temps (5 à 10 min). Une fois que debootstrap a fini, il faut répéter l'opération deux fois : démonter disk1, le copier dans deux disques disk2 et disk3, créer les systèmes de fichiers fs2 et fs3 puis remonter les 3 disques sur leur système de fichier respectif.

Remarque: Nous avions dans un premier temps oublié d'exécuter la commande echo "proc /proc proc defaults 0 0" >> rootfs/etc/fstab permettant la préparation du montage du pseudo système de fichier /proc. Cela entraînait une erreur lors de la création des conteneurs.

Commutateur et interfaces virtuels

La création du commutateur virtuel se fait via la commande suivante:

ip link add commutateurTP type bridge


Une fois que le commutateur créé il nous a fallu créer et ajouter des interfaces virtuelles sur ce commutateur. Ces interfaces permettent de connecter les conteneurs. Nous les avons nommées vif pour virtual interface. Vif 1, Vif 2 et Vif3 seront liés à eth0 et vif 4 sera lié à eth1 pour le mandataire inverse.

  • ip link add vif1 type veth peer name eth0@vif1 : Exemple de création de l'interface vif 1.
  • ip link set vif1 master commutateurTP : Ajout de l'interface dans le commutateur.

Création des conteneurs

On commence par la création d'un processus isolé à l'aide de la commande unshare. Cette commande permet à un processus de dissocier les parties de son contexte d'exécution qui sont actuellement partagées avec d'autres processus: unshare -p -f -m chroot rootfs /bin/sh -c "mount /proc ; /bin/bash" ;