Projet

Général

Profil

Automatisation » Historique » Version 13

« Précédent - Version 13/43 (diff) - Suivant » - Version actuelle
Gilles Grandgérard, 13/04/2021 15:49


Automatisation

Dans le cas de l'utilisation d'un serveur Hapy, l'utilisateur doit créer ses VM à la main.
Un article détaille un exemple de processus https://pcll.ac-dijon.fr/eole/utiliser-hapy-virtualiser-modules-eole/

L'idée est de pouvoir proposer une automatisation de ce type de déploiement.

À la suite de l'étude faite par Cadoles :

  • Nous imposons l'utilisation d'un Zéphir
  • Nous ne proposons pas de modèle d'infrastructure (Amon + Scribe, Amon + Seth AD + Seth filer, ...) (l'idée serait à travailler plus tard)

Pré requis pour utiliser cette fonctionnalité

  • Avoir un Zéphir pour manager les Hâpy et les VM installées sur ces Hâpy
  • Avoir au moins un Hâpy instancié et configuré.
  • l'accès vers le dépôt des images Eole/Hâpy doit être possible (proxy,...) (et le dépot préparé)
  • Les images devront être Cloudifiées (cloud-init ou one-context). Voir #32118

Préparation d'Hâpy

  • Dans Zéphir
    • Création d'un établissement
    • Création du serveur Hâpy dans l'établissement
  • Dans l’établissement
    • Installation d'Hâpy sur une machine physique avec l'ISO
    • Enregistrement Zéphir
    • Création des serveurs de l'établissement

Exigences de fonctionnement

  • Toutes les VM managées utilisent des images persistantes
  • Toutes les VM sont enregistrées sur Zéphir
  • Si la VM existe déjà sur l'Hapy, on ne la recrée pas (attention: seul le template peut être actualisé)

Comment fonctionne l'automatisation

Il faut créer la configuration des VM dans Zéphir (dont les caractéristiques de la VM)

Voir #32117

(si le paquet eole-modele-vm n'est pas installé, faire apt-eole install eole-modele-vm)

Pour cela, vous devez activer_modele_vm. Renseigner les variables suivantes :

  • mémoire : la mémoire en Go (par defaut : la préconisation EOLE pour le module)
  • vcpu :
  • Disque Os : nom du disque OS de la VM (par défaut: <eole-module>-<eole-release>) + Taille
  • Disque Data : nom du disque Data + Taille
  • Interface 1 : nom du réseau déclaré sur Hapy
  • Interface 2 : nom du réseau déclaré sur Hapy
  • Interface 3 : nom du réseau déclaré sur Hapy
  • Interface X : nom du réseau déclaré sur Hapy

Ceci peut être fait lors de la création des variantes et la création des serveurs. Ce travail reste manuel.

DaD:
  • Je pense qu’au lieu d’avoir Disque OS et Disque Data il faudrait une liste ordonnée de disque (nom de l’image + taille de l’image + bootable ?)

Dans la configuration de l'Hapy,

Voir #32118

Activer activer_deploiement_automatique
Saisir la liste des VMs :

  • Renseigner les Id Zéphir des serveurs devant être déployées sur cet Hapy (id zéphir ou nom de la vm ?)
  • La liste est ordonnée : les VM sont démarrée dans cette ordre.

RQ: il n'y a pas de contrôle entre la liste des Interfaces déclarées sur Hapy et les Interfaces venant des configurations de VM.

Depuis Zéphir, appliquer la configuration sur le serveur Hâpy

  • La nouvelle configuration est déployé sur la machine Hapy
  • Le reconfigure est exécuté
  • les VM vont être installées, instanciées et prêtes à l'usage dans l'ordre de déclaration de la liste des VM

Procédure poste service hapy

La création des interfaces aura été faite lors de l’instance/reconfigure de l'Hapy.
Idem pour les datastores....
Idem pour la déclaration du marketplace EOLE/Hapy

Voir #32120

  1. Si activer_deploiement_automatique = non, stop
  2. Pour chaque IdZéphir
    1. récupérer toute la configuration de la VM dans un tar.gz
      1. Vérifier la cohérence des informations Hapy/VMs. Si échec, alors on s'arrête en erreur
    2. créer/mettre à jour un FILE dans hapy pour chaque configuration de VM
    3. télécharger les images Apps sur l'Hapy
    4. créer les images nécessaires Os (et Data si besoin)
    5. Créer/mettre à jour un TEMPLATE (Avec une contextualisation active, +Le fichier de Configuration, +Le script de post installation)
    6. Démarrer la VM
    7. Si l'instance n'est pas faite:
      • réponse aux questions de façon automatique
      • gestion des secrets
    8. Monitorer la fin d'instance avant de passer à la suivante.