Projet

Général

Profil

Scénario #34577

Hapy autmatisation 2.8.1 : modification du paquet de contextualisation OpenNebula en 6.4 dans les Apps du Market

Ajouté par Gilles Grandgérard il y a plus d'un an. Mis à jour il y a plus d'un an.

Statut:
Terminé (Sprint)
Priorité:
Normal
Catégorie:
-
Début:
11/10/2022
Echéance:
09/12/2022
% réalisé:

100%

Points de scénarios:
2.0
Restant à faire (heures):
0.00 heure
Estimation basée sur la vélocité:
Release:
Liens avec la release:
Auto

Description

La modification du paquet de contextualisation OpenNebula en 6.4 dans les Apps du Market a bloqué le fonctionnement de l'automatisation.

Ce scénario englobe les modifications nécessaires et améliorations du processus de déploiement.

modifications:
- Les variables d'environnement LANG doivent être imposées pour que pexpect puisse gérer les messages
- Le paquet de contextualisation gère correctement le réseau --> suppression des 'setup_network' qui génèrent des messages "RTNETLINK answers: File exists" dans les logs...
- Le redimensionnement des Disques de la VM doit se faire AVANT 'instance' --> refactoring du code pour démarrer la VM sans provissioning, attente fin boot, arrêt, redimensionnement, puis re-démarrage avec provisionning
- En mode reconfigure, si la VM existe > ne rien faire
Le template est géré complètement par le script (plus de mode 'append')
- Le template final de la VM ne contient plus de CONTEXT. Normal, une fois la VM démarrée et rattaché à Zéphir, la contextualisation ne doit plus intervenir.

améliorations:
- le script d'ajout d'un market redémarre toujours OpenNebula --> uniquement si on ajout un market.
- le script de déploiement fonctionne avec 'instance' seul. L'obligation d'aller faire un 'instance' sur le module Hapy à chaque déploiement est contraignant. La gestion du reconfigure est ajoutée.
- les mises à jour de script ou credential supprime et recrée les FILE OpenNebula. Il existe un BUG dans OpenNebula (depuis longtemps...) qui bloque le re démarrage d'une VM. --> Utilisation de l'approche de l'automate de test : re-nomage des FILE (ave l'ID) et création d'un nouveau FILE. Idem pour zcreds.sc (avec SHA)
- L'ensemble des messages du déploiement d'une VM sont regroupés ensemble

mise en forme du code :
- Une fonction pour chaque commande OpenNebula (le nom des fonction = la commande OpenNebula)
- séparation des Opérations d'attente / commande
- Une seule fonction de mise à jour du template

L’algorithme est :

for vm in vms:
    if isVmExiste(vmName):
        Existe dèjà. pas de modification.
        check power on
    else:
        import_apps from markets
        onetemplate clone
        check vm disk is persitante

        if isVMDiskNeedResize
            # phase 1 : boot sans provisionning, attente, puis poweroof, resize disk, terminate
            onetemplate update BOOT1_SANS_PROVISIONING
            onetemplate instantiate pour dimensionnement
            wait vm status running démarrage pour dimensionnement
            wait bootok_file_created
            onevm poweroff
            wait vm status poweroff "arrêt" 
            onevm disk_resize
            # Wait for state DISK_RESIZE_POWEROFF to go off
            wait vm status poweroff "arrêt pour redimensionnement" 
            onevm terminate
            wait vm vanished

        # phase 2 : boot avec provisionning, 
        onetemplate update BOOT2_AVEC_PROVISIONING
        onetemplate instantiate "pour provisionning EOLE" 
        wait vm status running "démarrage provisionning" 
        monitor provisioning vm
        # la fin de provisionning fait un 'halt' -> donc la vm est en poweroff
        onevm terminate
        wait vm vanished

        # phase 3 : boot sans context
        onetemplate update 'BOOT3_CONTEXT_FINAL'
        onetemplate instantiate "pour usage final" 
        wait vm status "running", "démarrage final" 

    except:
        ...


Sous-tâches

Distribution EOLE - Tâche #34539: Hapy : onetemplate convert bug corrigéFerméGilles Grandgérard

Tâche #34656: Fournir le paquet de contextualisation OpenNebula 2.7.2FerméJoël Cuissinat

Tâche #34708: Mettre un paquet récent "one-context" dans nos dépôtsFerméJoël Cuissinat

Tâche #34709: Utiliser le paquet "one-context" et supprimer le hack dans "market-build.sh"FerméGilles Grandgérard

Tâche #34729: pb gateway dans one context 6.4 si plusieurs interfacesFerméGilles Grandgérard

Révisions associées

Révision 17baf5eb (diff)
Ajouté par Gilles Grandgérard il y a plus d'un an

Ne pas redémarrer OpenNebula si il n'y a pas d'ajout de Market.

Révision afd8a351 (diff)
Ajouté par Gilles Grandgérard il y a plus d'un an

Ajout commentaire TODO

Révision 43cefa5f (diff)
Ajouté par Gilles Grandgérard il y a plus d'un an

Ajout gestion 'reconfigure'

Révision 12e233db (diff)
Ajouté par Gilles Grandgérard il y a plus d'un an

suite paquet OpenNebula Context 6.4

Révision b3fd241d (diff)
Ajouté par Gilles Grandgérard il y a plus d'un an

pas de return dans un script sans fonction

Révision 3b438d37 (diff)
Ajouté par Gilles Grandgérard il y a plus d'un an

Suite OpenNebula context 6.4 , suppression setup_network

Révision 5088757e (diff)
Ajouté par Gilles Grandgérard il y a plus d'un an

Suite OpenNebula context 6.4, ajout variable LANG LC_*

Révision 3e538df9 (diff)
Ajouté par Gilles Grandgérard il y a plus d'un an

Le redimensionnement des Disques de la VM doit se faire AVANT 'instance'
--> refactoring du code pour démarrer la VM sans provissioning, attente
fin boot, arrêt, redimensionnement, puis re-démarrage avec provisionning
En mode reconfigure, si la VM existe > ne rien faire
Le template est géré complètement par le script (plus de mode 'append')
Le template final de la VM ne contient plus de CONTEXT. Normal, une fois
la VM démarrée et rattaché à Zéphir, la contextualisation ne doit plus
intervenir.

le script de déploiement fonctionne avec 'instance' seul. L'obligation
d'aller faire un 'instance' sur le module Hapy à chaque déploiement est
contraignant. La gestion du reconfigure est ajoutée.
les mises à jour de zcreds.sc avec SHA
L'ensemble des messages du déploiement d'une VM sont regroupés ensemble

Refactoring:
Une fonction pour chaque commande OpenNebula (le nom des fonction = la
commande OpenNebula)
Séparation des Opérations d'attente / commande
Une seule fonction de mise à jour du template

REF #34577

Révision 04aa8d7f
Ajouté par Gilles Grandgérard il y a plus d'un an

Merge branch '2.8.1/master'

Révision d2301eb2 (diff)
Ajouté par Gilles Grandgérard il y a plus d'un an

20_enregistrement_zephir.sh: envoi le log dans BOOT_FILE mais en mode
append

REF #34577

Révision d76b4ec8 (diff)
Ajouté par Gilles Grandgérard il y a plus d'un an

50_instance_auto.sh: position le proxy avant instance-unatended

REF #34577

Révision 64165373 (diff)
Ajouté par Gilles Grandgérard il y a plus d'un an

93-vm-deploy: typo shellcheck + comment

REF #34577

Révision 52a0d969 (diff)
Ajouté par Gilles Grandgérard il y a plus d'un an

source /etc/one-context.d/loc-10-network.d/functions au mauvais endroit
(ecrase configure_network !)

REF #34577

Révision 63cc7b21 (diff)
Ajouté par Gilles Grandgérard il y a plus d'un an

source /etc/one-context.d/loc-10-network.d/functions au mauvais endroit
(ecrase configure_network !)

REF #34577

Historique

#1 Mis à jour par Gilles Grandgérard il y a plus d'un an

  • Projet changé de Distribution EOLE à EOLE OpenNebula

#2 Mis à jour par Joël Cuissinat il y a plus d'un an

  • Assigné à mis à Gilles Grandgérard
  • Version cible changé de sprint 2022 36-39 Equipe MENSR à Livraison MENSR 31/01/2023

#3 Mis à jour par Gilles Grandgérard il y a plus d'un an

  • Description mis à jour (diff)

#4 Mis à jour par Gilles Grandgérard il y a plus d'un an

  • Statut changé de Nouveau à Résolu

#5 Mis à jour par Joël Cuissinat il y a plus d'un an

  • Statut changé de Résolu à Terminé (Sprint)
  • Points de scénarios mis à 2.0

#6 Mis à jour par Joël Cuissinat il y a plus d'un an

  • Précède Tâche #34656: Fournir le paquet de contextualisation OpenNebula 2.7.2 ajouté

#7 Mis à jour par Joël Cuissinat il y a plus d'un an

  • Statut changé de Terminé (Sprint) à En cours

#8 Mis à jour par Joël Cuissinat il y a plus d'un an

  • Statut changé de En cours à Terminé (Sprint)

Formats disponibles : Atom PDF