TP sysres IMA5sc 2018/2019 G9 : Différence entre versions
(→=) |
(→Création d'un container avec Docker :) |
||
Ligne 222 : | Ligne 222 : | ||
==Création d'un container avec Docker :== | ==Création d'un container avec Docker :== | ||
+ | |||
+ | ===Création d'une première image :=== | ||
Version du 27 novembre 2018 à 09:11
Sommaire
- 1 Séance 1 : TP ASR
- 1.1 Création d'un container avec unshare
- 1.2 Mise en place du réseau
- 1.2.1 Création de 4 interfaces virtuelles
- 1.2.2 Connexion de chaque interface à une interface eth0 sur les containers
- 1.2.3 Connexion à eth1 sur le premier container
- 1.2.4 Création d'un bridge
- 1.2.5 Ajout de vif4 à bridge
- 1.2.6 Ajout de vif1, vif2, vif3 à interne
- 1.2.7 Activation de toutes les interfaces
- 1.2.8 Attribution des adresses ip
- 1.2.9 Activation des interfaces sur les containers>
- 2 Séance 2 : TP ASR (suite)
- 3 Séance 3 : TP PRA
- 4 Séance 4 : TP PRA (Suite)
Séance 1 : TP ASR
Lors de cette première séance, nous avons eu pour objectif de créer les 3 containers et de les faire communiquer.
Création de l'image disque
dd if=/dev/zero of=disc1.img bs=1024K count=10240
Mise en place du file system
mkfs disc1.img
Création du point de montage et montage de l'image
mkdir /tmp/rootfs1 mount -o loop disc1.img /tmp/rootfs1
Installation du debian dans le point de montage
Afin de pouvoir installer debian, il faut que la machine accède à internet :
export http_proxy=http://proxy.polytech-lille.fr:3128/
debootstrap permet d'installer debian ainsi que apache2 et vim pour que nous puissions travailler dans la séance 2 :
debootstrap --include=nano,vim,apache2 stable /tmp/rootfs1
Simplification de l'accès
echo "proc /proc proc defaults 0 0" >> /tmp/rootfs1/etc/fstab
Clonage des images
L'image est maintenant prête, nous pouvons maintenant la cloner afin d'en avoir 3 identiques. Pour cela on démonte l'image 1 :
umount /tmp/rootfs1
On copie l'image :
cp disc1.img disc2.img cp disc1.img disc3.img
On monte les 3 images :
mount -o loop disc1.img /tmp/rootfs1 mount -o loop disc2.img /tmp/rootfs2 mount -o loop disc3.img /tmp/rootfs3
Lancement des trois containers
unshare nous permet de lancer les trois images précédemment montées :
unshare -n -u -p -f -m chroot /tmp/rootfs1 /bin/sh -c "mount /proc ; /bin/bash" unshare -n -u -p -f -m chroot /tmp/rootfs2 /bin/sh -c "mount /proc ; /bin/bash" unshare -n -u -p -f -m chroot /tmp/rootfs3 /bin/sh -c "mount /proc ; /bin/bash"
Les trois containers sont maintenant lancés, nous pouvons travailler dessus.
Mise en place du réseau
Nos containers étant lancés et fonctionnels, nous allons maintenant les connecter en réseau.
Création de 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 de chaque interface à une interface eth0 sur les containers
ip link set eth0@vif1 netns /proc/<pid1>/ns/net name eth0 ip link set eth0@vif2 netns /proc/<pid2>/ns/net name eth0 ip link set eth0@vif3 netns /proc/<pid3>/ns/net name eth0
pid1, pid2, pid3 peuvent être déterminés via la commande :
ps aux | grep unshare
Connexion à eth1 sur le premier container
ip link set eth1@vif1 netns /proc/<pid1>/ns/net name eth1
Création d'un bridge
ip link add interne type bridge
Ajout de vif4 à bridge
L'interface eth0 de la zabeth est sur le bridge, on connecte donc vif4 à bridge
ip link set vif4 master bridge
Ajout de vif1, vif2, vif3 à interne
ip link set vif1 master interne ip link set vif2 master interne ip link set vif3 master interne
Activation de toutes les interfaces
ip link set vif1 up ip link set vif2 up ip link set vif3 up ip link set bridge up ip link set interne up
Attribution des adresses ip
On commence par attribuer les ip de la forme 192.168.4.xxx aux interfaces connectées à bridge :
nsenter -t <PID1> -n ip address add dev eth0 192.168.4.1/24
nsenter -t <PID2> -n ip address add dev eth0 192.168.4.2/24
nsenter -t <PID3> -n ip address add dev eth0 192.168.4.3/24
On attribue une ip vacante sur 172.26.145.xxx au container 1 sur l'interface eth1 :
nsenter -t <PID1> -n ip address add dev eth1 172.26.145.234/24
Activation des interfaces sur les containers>
Sur chaque containers, lancer :
ip link set dev eth0 up ip link set dev lo up
Ainsi que sur le container 1 :
ip link set dev eth1 up
Les containers sont maintenant fonctionnels et connectés selon le schéma suivant :
bridge : eth0 eth1 vif4
interne : vif1 vif2 vif3
Séance 2 : TP ASR (suite)
Lors de cette séance, nous allons configurer apache2 afin de pouvoir accéder à deux sites web différents hébergés sur les containers 2 et 3, et ce depuis des noms de domaine choisis.
Attribution des noms de domaine
Afin d'obtenir un nom de domaine, nous nous connections sur gandi.net.
Onglet Domaines, on choisit le domaine plil.space.
Onglet DNS Records, on ajoute un DNS type A :
Nom : tham2 IP : 172.26.145.234
Puis on ajoute deux DNS type Cname :
Nom : tham1 & tham3 Nom d'hote : tham2
De cette manière, nous pouvons maintenant accéder à 172.26.145.234 via tham1.plil.space et tham3.plil.space
Configuration d'apache2
Fichier conf
Les configurations de site se trouvent dans /etc/apache2/sites-available/, nous allons donc configurer 000-default.conf :
<VirtualHost *:80> ServerName tham1.plil.space ServerAdmin webmaster@tham1.plil.space DocumentRoot /var/www/html/tham1/ ProxyPass / http://192.168.4.2/ ProxyPassReverse / http://192.168.4.2/ ProxyRequests Off ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
<VirtualHost *:80> ServerName tham3.plil.space ServerAdmin webmaster@tham3.plil.space DocumentRoot /var/www/html/tham3/ ProxyPass / http://192.168.4.3/ ProxyPassReverse / http://192.168.4.3/ ProxyRequests Off ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
On redirige tham1.plil.space vers le container 2 et tham3.plil.space vers le container 3 via leurs ip (192.168.4.2 et 192.168.4.3)
Activation des modules proxy et proxy_http
a2enmod proxy a2enmod proxy_http
Activation du site
a2ensite 000-default.conf
Tout est maintenant configuré, on peut donc rebooter apache :
service apache2 restart
Création d'une page web
Dans les containers 2 et 3 on créé une simple page web et on reboot apache :
Container 2 :
cat 1 /var/www/html/index.html service apache2 restart
Container 3 :
cat 3 /var/www/html/index.html service apache2 restart
Visualisation de la page web
On commence par désactiver le proxy sur firefox, et on peut accéder aux pages :
tham1.plil.space/index.html
firefox affiche 1
tham3.plil.space/index.html
firefox affiche 3
Création d'un container avec Docker :
Création d'une première image :
11h10 => Serveurs Web OK (unshare)
12h20 => Serveurs Web OK (docker)
Séance 3 : TP PRA
Le sujet choisi ici est le sujet n°10 : HP + DAS -> Baie. Notre travail consiste à installer un OS Devuan sur un serveur HP et ensuite le connecter à un DAS HP.
Le matériel
Le serveur est un HP XXXXXX, ses caractéristiques sont les suivantes :
XX XX XX XX XX XX
Le SAS est un HP XXXXXXX. Au départ nous pouvons voir qu'il est peuplé de 11 disques durs SATA classiques (pas comme le serveurs qui est peuplé de disques SATA dont le connecteur physique est spécifique HP). Chaque disque dur a une capacité de 1To.
Sur le panneau arrière nous constatons qu'il y a une redondance d'alimentations, et deux connecteurs SAS SFF-8088 (io/out)
Mise en route du serveur
Lors de la mise en route du serveur, nous constations trois problèmes :
-Les ventilateurs tournent à 100% sans arrêt. -La LED internal health clignote rouge. -Un bip long est émis périodiquement.
De ce fait, nous avons ouvert le serveur, et une inspection visuelle montrera que ce dernier était dépourvu de RAM. Après consultation du manuel, nous avons vu que la RAM nécessaire était de la DDR2 ECC Registred.
Nous avons ensuite monté 2x1Go de RAM sur le slot 1 et 3 correspondant au channel A.
Une fois remonté, le serveur bootait correctement.
Installation de Devuan
Le serveur peut booter sur un périphérique USB, nous avons donc récupéré une clé avec un Devuan bootable installé dessus. Après avoir mis la clé en premier boot dans le bios, le serveur boot sans souci sur la clé. Le souci que nous allons rencontrer se trouve au moment du partitionnement. De vieilles grappes RAID sont toujours configurées et plus d'actualité, nous allons donc y remédier.
Pour ce faire, nous entrons dans l'utilitaire de configuration RAID (au boot F9 puis F8), supprimons toutes les grappes existantes et en créons une nouvelle en RAID5.
Une fois fait, nous pouvons installer notre Devuan sur la grappe avec les configurations classiques (utilisateur pifou et mot de passe habituel).
Configurations réseau
Dans un premier temps, nous avons raccordé l'interface réseau principale du serveur au réseau polytech.
Nous avons trouvé une adresse ip disponible sur le réseau et l'avons configurée dans interfaces : XXX
Ensuite, nous avons configuré les DNS : XXX
Et enfin nous avons ajouté le proxy polytech : XXX
Une fois fait, notre serveur avait accès au réseau de polytech.