Project

General

Profile

Scénario #34577

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

Added by Gilles Grandgérard over 1 year ago. Updated over 1 year ago.

Status:
Terminé (Sprint)
Priority:
Normal
Category:
-
Start date:
10/11/2022
Due date:
12/09/2022
% Done:

100%

Story points:
2.0
Remaining (hours):
0.00 hour
Velocity based estimate:
Release:
Release relationship:
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:
        ...


Subtasks

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

Associated revisions

Revision 17baf5eb (diff)
Added by Gilles Grandgérard over 1 year ago

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

Revision afd8a351 (diff)
Added by Gilles Grandgérard over 1 year ago

Ajout commentaire TODO

Revision 43cefa5f (diff)
Added by Gilles Grandgérard over 1 year ago

Ajout gestion 'reconfigure'

Revision 12e233db (diff)
Added by Gilles Grandgérard over 1 year ago

suite paquet OpenNebula Context 6.4

Revision b3fd241d (diff)
Added by Gilles Grandgérard over 1 year ago

pas de return dans un script sans fonction

Revision 3b438d37 (diff)
Added by Gilles Grandgérard over 1 year ago

Suite OpenNebula context 6.4 , suppression setup_network

Revision 5088757e (diff)
Added by Gilles Grandgérard over 1 year ago

Suite OpenNebula context 6.4, ajout variable LANG LC_*

Revision 3e538df9 (diff)
Added by Gilles Grandgérard over 1 year ago

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

Revision 04aa8d7f
Added by Gilles Grandgérard over 1 year ago

Merge branch '2.8.1/master'

Revision d2301eb2 (diff)
Added by Gilles Grandgérard over 1 year ago

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

REF #34577

Revision d76b4ec8 (diff)
Added by Gilles Grandgérard over 1 year ago

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

REF #34577

Revision 64165373 (diff)
Added by Gilles Grandgérard over 1 year ago

93-vm-deploy: typo shellcheck + comment

REF #34577

Revision 52a0d969 (diff)
Added by Gilles Grandgérard over 1 year ago

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

REF #34577

Revision 63cc7b21 (diff)
Added by Gilles Grandgérard over 1 year ago

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

REF #34577

History

#1 Updated by Gilles Grandgérard over 1 year ago

  • Project changed from Distribution EOLE to EOLE OpenNebula

#2 Updated by Joël Cuissinat over 1 year ago

  • Assigned To set to Gilles Grandgérard
  • Target version changed from sprint 2022 36-39 Equipe MENSR to Livraison MENSR 31/01/2023

#3 Updated by Gilles Grandgérard over 1 year ago

  • Description updated (diff)

#4 Updated by Gilles Grandgérard over 1 year ago

  • Status changed from Nouveau to Résolu

#5 Updated by Joël Cuissinat over 1 year ago

  • Status changed from Résolu to Terminé (Sprint)
  • Story points set to 2.0

#6 Updated by Joël Cuissinat over 1 year ago

  • Precedes Tâche #34656: Fournir le paquet de contextualisation OpenNebula 2.7.2 added

#7 Updated by Joël Cuissinat over 1 year ago

  • Status changed from Terminé (Sprint) to En cours

#8 Updated by Joël Cuissinat over 1 year ago

  • Status changed from En cours to Terminé (Sprint)

Also available in: Atom PDF