Epic 1 : Exécuter une commande simple sur deux modules EOLE

Contexte

En tant qu’utilisateur, je dois pouvoir exécuter des actions sur une liste de serveurs.

Environnement

  • un poste client
  • le serveur Zéphir
  • un module EOLE etb1.amon
  • un module EOLE etb1.scribe
  • un module EOLE etb1.horus

Explication

Depuis mon poste utilisateur, j’utilise un client Zéphir basique (SSH ?) pour interagir avec Zéphir. Une fois authentifié, je lance une action reconfigure sur les modules Scribe et Horus. Le serveur Zéphir vérifie que ces actions sont valides (authentification/droits/serveurs). Le microservice en charge de ces machines exécute les actions. ... plus tard, j’interroge Zéphir pour connaitre l’avancement des actions.

Les actions reboot et shutdown sont implémentées de la même manière.

Que valide-t-on ?

  • Le coté “asynchrone” des actions.
  • La communication avec 2 modules EOLE (au travers d’un AMON).
  • Le circuit d’information de l’api jusqu’aux modules.

Diagramme de séquence

msc {
   hscale = "2";

   user,apiZephir,messagebroker,ctrlSaltZephir,saltmaster,amon,scribe,horus ;

   user=>apiZephir [ label = "connexion" ] ;
   user=>apiZephir [ label = "command 'reconfigure'\n sur (scribe,horus)" ] ;
   apiZephir=>messagebroker [ label = "execute action=reconfigure\nid=(1,2)"];
   messagebroker=>ctrlSaltZephir [ label = "reception message" ];
   ctrlSaltZephir=>saltmaster [ label = "lancement commande"];
   saltmaster=>scribe [ label = "reconfigure sur scribe"];
   saltmaster=>horus [ label = "reconfigure sur horus"];
   |||;
   user=>apiZephir [ label = "connexion" ] ;
   user=>apiZephir [ label = "status" ] ;
   |||;
}