TP sysres IMA5sc 2018/2019 G3 : Différence entre versions
Ligne 12 : | Ligne 12 : | ||
On associe un système de fichiers de type ext4 à notre fichier. | On associe un système de fichiers de type ext4 à notre fichier. | ||
− | <div style="padding:15px;color:#ffffff;background-color:#23241F;font-family: | + | <div style="padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas"> |
mkfs.ext4 /home/pifou/containers/container1 | mkfs.ext4 /home/pifou/containers/container1 | ||
</div> | </div> | ||
Ligne 20 : | Ligne 20 : | ||
On monte le système de fichier précédemment crée dans /mnt/container1 | On monte le système de fichier précédemment crée dans /mnt/container1 | ||
− | <div style="padding:15px;color:#ffffff;background-color:#23241F;font-family: | + | <div style="padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas"> |
mkdir /mnt/container1 | mkdir /mnt/container1 | ||
mkdir /mnt/container2 | mkdir /mnt/container2 | ||
Ligne 31 : | Ligne 31 : | ||
Avant tout, on renseigne le proxy de l'école dans la variable d’environnement correspondante afin qu'on puisse télécharger les paquetages sur le mirroir devuan extérieur à l'école | Avant tout, on renseigne le proxy de l'école dans la variable d’environnement correspondante afin qu'on puisse télécharger les paquetages sur le mirroir devuan extérieur à l'école | ||
− | <div style="padding:15px;color:#ffffff;background-color:#23241F;font-family: | + | <div style="padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas"> |
export http_proxy=https://proxy.polytech-lille.fr:3128 | export http_proxy=https://proxy.polytech-lille.fr:3128 | ||
</div> | </div> | ||
Ligne 37 : | Ligne 37 : | ||
Puis on utilise deboostrap dans /mnt/container1 | Puis on utilise deboostrap dans /mnt/container1 | ||
− | <div style="padding:15px;color:#ffffff;background-color:#23241F;font-family: | + | <div style="padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas"> |
debootstrap --include=vim,nano,apache2 stable /mnt/container1 | debootstrap --include=vim,nano,apache2 stable /mnt/container1 | ||
</div> | </div> | ||
Ligne 43 : | Ligne 43 : | ||
Puis on renseigne le fichier fstab de notre container1, il s'agit du fichier qui indique comment les systèmes de fichiers doivent être montées | Puis on renseigne le fichier fstab de notre container1, il s'agit du fichier qui indique comment les systèmes de fichiers doivent être montées | ||
− | <div style="padding:15px;color:#ffffff;background-color:#23241F;font-family: | + | <div style="padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas"> |
echo "proc /proc proc defaults 0 0" >> rootfs/etc/fstab | echo "proc /proc proc defaults 0 0" >> rootfs/etc/fstab | ||
</div> | </div> | ||
Ligne 50 : | Ligne 50 : | ||
Enfin, on peut démonter la partition | Enfin, on peut démonter la partition | ||
− | <div style="padding:15px;color:#ffffff;background-color:#23241F;font-family: | + | <div style="padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas"> |
umount /tmp/fs1 | umount /tmp/fs1 | ||
</div> | </div> | ||
Ligne 56 : | Ligne 56 : | ||
Une fois que nous avons déployé tout ce dont nous avons besoin au sein du container1 il ne reste plus qu'à dupliquer ce fichier deux fois, et on aura trois partitions utilisables pour nos conteneurs | Une fois que nous avons déployé tout ce dont nous avons besoin au sein du container1 il ne reste plus qu'à dupliquer ce fichier deux fois, et on aura trois partitions utilisables pour nos conteneurs | ||
− | <div style="padding:15px;color:#ffffff;background-color:#23241F;font-family: | + | <div style="padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas"> |
cp /home/pifou/containers/container1 /home/pifou/containers/container2 | cp /home/pifou/containers/container1 /home/pifou/containers/container2 | ||
cp /home/pifou/containers/container1 /home/pifou/containers/container3 | cp /home/pifou/containers/container1 /home/pifou/containers/container3 | ||
Ligne 63 : | Ligne 63 : | ||
Ensuite on peut monter les trois systèmes de fichiers : | Ensuite on peut monter les trois systèmes de fichiers : | ||
− | <div style="padding:15px;color:#ffffff;background-color:#23241F;font-family: | + | <div style="padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas"> |
mount -t ext4 -o loop /mnt/container1 | mount -t ext4 -o loop /mnt/container1 | ||
mount -t ext4 -o loop /mnt/container2 | mount -t ext4 -o loop /mnt/container2 | ||
Ligne 70 : | Ligne 70 : | ||
==Configuration des interfaces réseau== | ==Configuration des interfaces réseau== | ||
− | Pour l'instant, on a tout ce qu'il faut pour lancer les conteneurs, seulement il seraient bien inutiles s'ils ne pouvaient aucunement communiquer entre eux ou avec le système hôte. Ainsi on va creer dans le système hôte 4 interfaces virtuelles pour les 3 conteneurs (un conteneur aura deux interfaces virtuelles dont l'une sera dans le bridge donnant accès à internet, il | + | Pour l'instant, on a tout ce qu'il faut pour lancer les conteneurs, seulement il seraient bien inutiles s'ils ne pouvaient aucunement communiquer entre eux ou avec le système hôte. Ainsi on va creer dans le système hôte 4 interfaces virtuelles pour les 3 conteneurs (un conteneur aura deux interfaces virtuelles dont l'une sera dans le bridge donnant accès à internet, il s’agira de notre conteneur mandataire inverse). On va donc creer un commutateur virtuel dans lequel on mettra les trois interfaces virtuelles eth0 de nos trois conteneurs. |
===Création du bridge=== | ===Création du bridge=== | ||
− | <div style="padding:15px;color:#ffffff;background-color:#23241F;font-family: | + | <div style="padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas"> |
ip link add monpetitpont type bridge | ip link add monpetitpont type bridge | ||
</div> | </div> | ||
===Création des 4 interfaces virtuelles=== | ===Création des 4 interfaces virtuelles=== | ||
− | <div style="padding:15px;color:#ffffff;background-color:#23241F;font-family: | + | <div style="padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas"> |
ip link add vif1 type veth peer name eth0@vif1 | ip link add vif1 type veth peer name eth0@vif1 | ||
ip link add vif2 type veth peer name eth0@vif2 | ip link add vif2 type veth peer name eth0@vif2 | ||
Ligne 87 : | Ligne 87 : | ||
===Connexion des interfaces virtuelles aux commutateurs virtuels=== | ===Connexion des interfaces virtuelles aux commutateurs virtuels=== | ||
Vif1 vif2 et vif3 sont mises dans monpetitpont, tandis que vif4 est mise dans bridge | Vif1 vif2 et vif3 sont mises dans monpetitpont, tandis que vif4 est mise dans bridge | ||
− | <div style="padding:15px;color:#ffffff;background-color:#23241F;font-family: | + | <div style="padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas"> |
ip link set vif1 master monpetitpont | ip link set vif1 master monpetitpont | ||
ip link set vif2 master monpetitpont | ip link set vif2 master monpetitpont | ||
Ligne 96 : | Ligne 96 : | ||
Il ne faut pas ommettre d'activer les interfaces, sans quoi la communication sera impossible | Il ne faut pas ommettre d'activer les interfaces, sans quoi la communication sera impossible | ||
− | <div style="padding:15px;color:#ffffff;background-color:#23241F;font-family: | + | <div style="padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas"> |
ip link set vif1 up | ip link set vif1 up | ||
ip link set vif2 up | ip link set vif2 up | ||
Ligne 105 : | Ligne 105 : | ||
On pense à ajouter une adresse ip au commutateur virtuel, même si ce n'est pas obligatoire : | On pense à ajouter une adresse ip au commutateur virtuel, même si ce n'est pas obligatoire : | ||
− | <div style="padding:15px;color:#ffffff;background-color:#23241F;font-family: | + | <div style="padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas"> |
ip a add dev monpetitpont 192.168.1.1/24 | ip a add dev monpetitpont 192.168.1.1/24 | ||
ip link set monpetitpont down | ip link set monpetitpont down | ||
ip link set monpetitpont up | ip link set monpetitpont up | ||
</div> | </div> |
Version du 14 novembre 2018 à 15:39
Sommaire
Première séance
Création des fichiers disque des conteneurs
On crée un fichier de 10 Gio = 10 240 * 1 Mio.
dd if=/dev/zero of=/home/pifou/containers/container1 bs=1024k count=10240
Création du système de fichiers
On associe un système de fichiers de type ext4 à notre fichier.
mkfs.ext4 /home/pifou/containers/container1
Montage du système de fichiers
On monte le système de fichier précédemment crée dans /mnt/container1
mkdir /mnt/container1 mkdir /mnt/container2 mkdir /mnt/container3 mount -t ext4 -o loop /mnt/container1
Déploiement de l'arborescence Debian
Avant tout, on renseigne le proxy de l'école dans la variable d’environnement correspondante afin qu'on puisse télécharger les paquetages sur le mirroir devuan extérieur à l'école
export http_proxy=https://proxy.polytech-lille.fr:3128
Puis on utilise deboostrap dans /mnt/container1
debootstrap --include=vim,nano,apache2 stable /mnt/container1
Puis on renseigne le fichier fstab de notre container1, il s'agit du fichier qui indique comment les systèmes de fichiers doivent être montées
echo "proc /proc proc defaults 0 0" >> rootfs/etc/fstab
Enfin, on peut démonter la partition
umount /tmp/fs1
Une fois que nous avons déployé tout ce dont nous avons besoin au sein du container1 il ne reste plus qu'à dupliquer ce fichier deux fois, et on aura trois partitions utilisables pour nos conteneurs
cp /home/pifou/containers/container1 /home/pifou/containers/container2 cp /home/pifou/containers/container1 /home/pifou/containers/container3
Ensuite on peut monter les trois systèmes de fichiers :
mount -t ext4 -o loop /mnt/container1 mount -t ext4 -o loop /mnt/container2 mount -t ext4 -o loop /mnt/container3
Configuration des interfaces réseau
Pour l'instant, on a tout ce qu'il faut pour lancer les conteneurs, seulement il seraient bien inutiles s'ils ne pouvaient aucunement communiquer entre eux ou avec le système hôte. Ainsi on va creer dans le système hôte 4 interfaces virtuelles pour les 3 conteneurs (un conteneur aura deux interfaces virtuelles dont l'une sera dans le bridge donnant accès à internet, il s’agira de notre conteneur mandataire inverse). On va donc creer un commutateur virtuel dans lequel on mettra les trois interfaces virtuelles eth0 de nos trois conteneurs.
Création du bridge
ip link add monpetitpont type bridge
Création des 4 interfaces virtuelles
ip link add vif1 type veth peer name eth0@vif1 ip link add vif2 type veth peer name eth0@vif2 ip link add vif3 type veth peer name eth0@vif3 ip link add vif4 type veth peer name eth1@vif4
Connexion des interfaces virtuelles aux commutateurs virtuels
Vif1 vif2 et vif3 sont mises dans monpetitpont, tandis que vif4 est mise dans bridge
ip link set vif1 master monpetitpont ip link set vif2 master monpetitpont ip link set vif3 master monpetitpont ip link set vif4 master bridge
Il ne faut pas ommettre d'activer les interfaces, sans quoi la communication sera impossible
ip link set vif1 up ip link set vif2 up ip link set vif3 up ip link set vif4 up
On pense à ajouter une adresse ip au commutateur virtuel, même si ce n'est pas obligatoire :
ip a add dev monpetitpont 192.168.1.1/24 ip link set monpetitpont down ip link set monpetitpont up