Stratégies pour tester des scripts de déploiement et de configuration automatisée sur différents systèmes d’exploitation

Proposition de stage ou de mémoire

Stratégies pour tester des scripts de déploiement et de configuration automatisée sur différents systèmes d’exploitation

Proposition de stage ou de mémoire

Profil Etudiant(e) niveau fin de bac ou master.
Prérequis Connaissance de Linux, de Git et de l’anglais écrit technique.

Des connaissances relatives aux outils de gestion de configurations et de déploiement d’applications (Ansible, Puppet, Chef, etc.), ainsi que d’intégration continue (Gitlab-CI, Travis) sont un plus.

Des connaissances de LaTeX, Markdown sont également un plus.

Durée Minimum 12 semaines.

Contexte

Dans le but de déployer des applications plus aisément (sur des infrastructures de cloud privées et publiques), un certain nombre d’outils permettent de scripter et d’automatiser les déploiements et les configurations des services. (Ansible, Chef, Puppet, etc)
L’utilisation d’un tel outil permet de décrire une application (composée d’un ensemble de services) sous forme de code/scripts, et de rejouer son installation à partir de machines vierges, sans avoir à se connecter sur chaque machine, ni à éditer manuellement les fichiers de configuration.

Créer ces fichiers de déploiement automatique pour un OS n’est pas trivial, les rendre compatibles et portables pour plusieurs systèmes d’exploitation et leurs différentes versions, chacun ayant des particularités qui leur sont propres, l’est encore moins. S’assurer du bon déploiement de toutes ces possibles configurations est un vrai challenge.

Travail à réaliser

La première partie du stage consiste à établir un état de l’art des stratégies existantes permettant le test de plusieurs configurations de scripts de déploiements.
Le stagiaire devra aussi se former sur l’outil Ansible.
Une étude de cas est alors réalisée, un script de déploiement multi-plateforme (RHEL, Ubuntu, Fedora, Suse, ...) sera choisi pour la mise en place de la statégie de tests. Il est possible que le stagiaire doive écrire ce script de déploiement.
Ensuite, le stagiaire devra réfléchir comment intégrer ce script de déploiement dans une intégration continue (Gitlab-CI, Travis) et comment s’assurer du bon déploiement de toutes les différentes configurations. (Stratégies de distribution des tests, récupération des résultats, ...)
Enfin, le stage se termine par une documentation détaillée et une présentation en interne.
En fonction des résultats et l’implication du stagiaire, une possible publication des résultats pourra être envisagée: article scientifique, article de blog, ...

Encadrement

L’entièreté du travail sera encadré. La ou le stagiaire utilisera une plateforme de développement permettant le suivi constant de ses progrès. Elle / il devra également faire preuve d’autonomie et d’esprit innovant.

Contact : Alexandre Nuttinck (alexandre.nuttinck@cetic.be)