divers:pom

Sujet de POM en 2018-2019

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 :

  • Il utilise des outils non standards ce qui rend difficile la mise à jour des machines.
  • Il limite les modèles de TP à des systèmes proches de l'installation de base (debian 8 actuellement).
  • Il ne permet pas aux étudiants de changer de machine ou de travailler à distance.
  • Il ne permet pas d'utiliser docker sur les machines de la salle car le système de fichiers spécial est justement celui de docker.

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 :

  • Une simplification de la gestion par l'utilisation des outils docker.
  • Une plus grande liberté sur les distributions utilisées (puisque toutes les distributions peuvent être mise dans des conteneurs).
  • La possibilité d'exporter le travail, de déplacer les images …

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.

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.

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.

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).

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.

  • divers/pom.txt
  • Dernière modification : 2018/10/26 22:42
  • de fabien.rico