L’objectif de cet atelier était de déployer une infrastructure de génération d’images fresh install avec l’outil SaltStack.

https://saltstack.com/

Le travail a été divisé en 3 sous-ateliers :

  • Générer une image master depuis l’ISO EOLE ;
  • Générer une image EOLE depuis une Ubuntu cloud ;
  • Déployer et configurer une image master existante.

Voici le compte rendu du premier sous-atelier.

Générer une image master depuis l’ISO EOLE

Les composants Salt Master et Salt Minion sont installés sur une machine virtuelle :

  • pas de minion sur le host ;
  • utilisation de l’API Salt Cloud ;
  • réutilisation de l’existant pour l’automatisation.

Automatisation

Création d’un sls (fichier de recettes Salt) sur le master dont le rôle est de réaliser les actions suivantes :

  • gestion de PPA ;
  • installation de vnsdotools ;
  • installation de Git ;
  • clonage du dépôt hapy-automatisation.

Les différentes actions étant interdépendantes, le sls est créé en fonction.

À ce stade, la difficulté est l’utilisation du PPA existant de vncdotools qui n’est plus maintenu :

https://launchpad.net/~sibson/+archive/ubuntu/vncdotool

Génération d’images

Elle est censée se faire en deux étapes, le but étant de faire appel à l’API Salt Cloud :

  • création du template OpenNebula ;
  • gestion du menu du CD d’installation EOLE.

Le travail consistait principalement à la création du template OpenNebula car le second était déjà avec hapy-automatisation.

Malheureusement l’API Salt Cloud est incomplète, elle ne permet de gérer que les paramètres memory, cpu et vcpu. La tentative de passer des paramètres supplémentaire s’est soldée par un échec, ceux-ci étant écrasés à la génération du template. L’utilisation de Salt Call a permis de faire du débogage…

Le seul contournement trouvé est de créer un template dans l’interface Sunstone puis de l’appeler dans le processus global.

Conclusion

L’objectif initial n’a pas été atteint. Dans l’état actuel des choses, il faudrait étendre l’API Salt Cloud pour OpenNebula ou implémenter un module avec python-oca.

PS : il est à noter qu’un minion particulièrement maltraité dans cet atelier a profité de la restitution pour fuir et se choisir un nouveau maître 😉