Table des matières

Sujet de POM en 2018-2019

Gestion d'une salle TP réseau par docker

Les TPs de système et réseaux demandent de travailler en tant qu'administrateur sur les postes. Les étudiants doivent faire des opérations et des configurations qui modifient le comportement de leur poste. Une fois le TP fini, la salle doit être remise à zéro pour le prochain TP. Tout cela est fastidieux et rend difficile les séries de TPs qui se suivent.

Il y a quelques années un système a été développé à l'université pour résoudre ce problème. Les modifications opérées par les étudiants ne sont pas définitives, elle sont stockées à part via un système de fichiers spécial. Cela permet de créer des templates de TP utilisables pour le réseau, d'autre pour le développement … Cela permet surtout de conserver le système des machines propres tout en permettant aux étudiants de retrouver leurs modifications d'une séance à l'autre. Le système à cependant plusieurs défauts :

Durant ce POM, vous devez tester une solution justement basée sur docker. L'idée est que les étudiants qui se connectent sur un poste soient automatiquement placés dans un conteneur. Toutes leur actions y seront conservées sans modifier le système de base. Cette solution devrait avoir plusieurs avantages :

Travail à faire

Une première preuve de fonctionnement a été faite durant un stage, on peut faire en sorte qu'une personne lance des applications graphiques qui sont toutes contenues dans un docker local. Il reste maintenant à rendre la solution utilisable. Il faut

  1. Créer une image système cliente avec menu de démarrage.
  2. Comprendre comment distribuer les images dans toute la salle, centraliser les sauvegardes …
  3. Explorer l'utilisation de l'authentification sur les dépôts docker afin de sécuriser le processus.
  4. Définir la méthode de déploiement de la salle.

Outils

Durant ce pom, il vous faudra apprendre à utiliser les outils suivant :

  1. docker et ses dérivés
  2. python et notamment les bibliothèques en rapport avec docker
  3. le système de gestion des fenêtre graphique de linux.

Automatiser la création de projet Openstack

Le département informatique dispose d'un Cloud privé sous Openstack qui est de plus en plus utilisé. Actuellement, pour demander un nouveau projet, l'enseignant-chercheur envoie un courriel pour exprimer ses besoins et l'administrateur crée le projet en essayant d'y répondre au mieux. La composition du courriel étant libre, les demandes ne sont pas toujours complètes et le résultat ne correspond pas toujours à ce qui est attendu. De plus, la création nécessitant une action manuelle, la présence de l'administrateur est obligatoire.

Travail

Durant ce POM, devez développer une application pour automatiser le processus. Pour cela, votre application devra communiquer avec les API d'Openstack afin de récupérer les données ou de créer les projets demandés. Cette application devra être capable de: - Créer le projet et son réseau en fonction des besoins exprimés. - Formaliser la demande de création. - Aider l'utilisateur dans la réservation des ressources à partir des données recueillies dans l'Openstack. - Permettre la mise en avant d'indicateur sur les demandes (historique, état, délai de délivrance).

Technologies

C'est un projet qui mixe une frontale web et l'utilisation des API Openstack. Il faudra choisir un langage de programmation permettant la création de l'interface web et la communication avec les différentes briques logicielles d'Openstack, authentification (Keystone), de gestion du réseau (Neutron) et la gestion des machines (Nova). Il sera donc nécessaire de s'accorder avec l'administrateur sur un langage proposant un SDK Openstack: PHP, JS, Python (SDK officiel).

Il est aussi possible d'attaquer directement les API REST d'Openstack, mais il n'est pas autorisé de passer par des appels à des commandes shell depuis l'interface web.