IMA4 2016/2017 ECP2

De Wiki d'activités IMA
Révision datée du 13 juin 2017 à 13:08 par Fcockenp (discussion | contributions) (Travail effectué)

Présentation du projet

Contexte

L'élève effectue son stage en Roumanie et dispose d'un PC avec une machine virtuelle Linux. Une connexion Internet stable est disponible.

Objectif

Il vous est demandé de concevoir une architecture système et réseau permettant de créer et de détruire facilement des conteneurs pour sites Web personnels. Les conteneurs doivent être créés sans utiliser d'usine à gaz de gestion de conteneurs (typiquement l'environnement Docker).

Description du projet

D'un point de vue système, les conteneurs seront créés en utilisant l'utilitaire Linux unshare. Vous devez créer un conteneur avec son propre espace disque et sa propre table de processus. Vous utiliserez ensuite les cgroups pour limiter la mémoire et l'espace disque accessibles par les conteneurs. Consultez [1] pour plus de détails.

D'un point de vue réseau vous utilisez la commande ip pour créer une interface virtuelle eth0 dans le conteneur en liaison avec une interface miroir dans le système d'exploitation hôte. L'interface miroir se trouvera dans un commutateur logiciel créé par la commande brctl. Les conteneurs seront ainsi accessible par réseau du système hôte. Consultez [2] pour plus détails.

Concernant le système de fichiers du conteneur, vous le construirez en utilisant l'utilitaire debootstrap. Un conteneur doit faire tourner un serveur ssh, un serveur Web et un serveur de base de données.

Vous prendrez soin d'écrire un script de création et de destruction de conteneur mais aussi un script de relance des conteneurs en cas de redémarrage du système hôte. Le script de création s'occupe de créer le système de fichiers et d'affecter une adresse IP. Le script de lancement effectue les commandes nécessaires pour lancer, de façon isolée, le processus initial du conteneur, de créer l'interface réseau du conteneur et de lancer les processus nécessaires à la gestion du site Web.

Un système de redirection de ports doit permettre à un utilisateur de se connecter d'Internet, par ssh, à son conteneur. L'accès aux sites Web se fera par un mandataire inverse tournant sur la machine hôte.

Cahier des charges

Planning prévisionnel

Travail effectué

Pour pouvoir commencer ce projet, je me suis d'abord lancé dans des recherches étant donné que je n'ai aucune connaissance dans ce domaine, la plus grosse partie de ce début de projet portera sur la compréhension du sujet et se qui m'est réellement demandé de faire.

Après des recherches sur les conteneurs, je suis passé à l'utilitaire linux Unshare. J'ai pour l'instant un peu de mal à comprendre comment celui ci fonctionne.


Sources

https://openclassrooms.com/courses/introduction-aux-conteneurs/

Documents