4.3.5. Notes et procédures spécifiques V6RC

Prudence

Pour une montée de version depuis la version R16 de Vitam, veuillez appliquer les procédures spécifiques de la V5RC et de la V5 en complément des procédures suivantes. Pour une montée de version depuis la version V5RC de Vitam, veuillez appliquer les procédures spécifiques de la V5 en complément des procédures suivantes. Pour une montée de version depuis la V5, vous pouvez appliquer la procédure suivante directement.

4.3.5.1. Adaptation des sources de déploiement ansible

4.3.5.1.1. Réorganisation des variables

Afin de simplifier la préparation des sources de déploiement, les fichiers ont étés répartis dans 2 sous répertoires main et advanced. Le répertoire main est le répertoire principal qui nécessite une attention particulière à la préparation des sources de déploiement.

Afin de vous adapter à cette nouvelle organisation, vous devez redispatcher les fichiers de configuration initialement sous environments/group_vars/all/ dans les 2 sous répertoires environments/group_vars/all/{main,advanced}/.

4.3.5.1.2. Ajout du nouveau composant scheduler

Prudence

À préparer dans les sources de déploiement AVANT le déploiement de la V6RC. Ce nouveau module est obligatoire et vient en remplacement des timers systemd pour l’ordonnancement des tâches planifiées dans Vitam.

  • Ajout du groupe [hosts_scheduler] à votre fichier d’inventaire (cf. fichier d’inventaire d’exemple: environments/hosts.example).

    [zone_applicative:children]
    hosts_scheduler
    
    [hosts_scheduler]
    # TODO: Put here servers where this service will be deployed : scheduler
    # Optional parameter after each host : vitam_scheduler_thread_count=<integer> ; This is the number of threads that are available for concurrent execution of jobs. ; default is 3 thread
    
  • Ajout des bases mongo pour le scheduler dans le fichier environments/group_vars/all/main/vault-vitam.yml:

    Prudence

    Pensez à éditer les password avec des passwords sécurisés.

    mongodb:
      mongo-data:
        scheduler:
          user: scheduler
          password: change_it_xyz
    
  • Personnaliser les paramètres jvm pour le scheduler dans le fichier de configuration environments/group_vars/all/main/jvm_opts.yml.

4.3.5.2. Procédures à exécuter AVANT la montée de version

4.3.5.2.1. Arrêt des timers et des accès externes à Vitam

Prudence

Cette opération doit être effectuée AVANT la montée de version vers la V6RC

Prudence

Cette opération doit être effectuée avec les sources de déploiements de l’ancienne version.

Les timers et les externals de Vitam doivent être arrêtés sur tous les sites :

ansible-playbook -i environments/<inventaire> ansible-vitam-exploitation/stop_external.yml --ask-vault-pass
ansible-playbook -i environments/<inventaire> ansible-vitam-exploitation/stop_vitam_timers.yml --ask-vault-pass

4.3.5.2.2. Mise à jour des dépôts (YUM/APT)

Prudence

Cette opération doit être effectuée AVANT la montée de version

Afin de pouvoir déployer la nouvelle version, vous devez mettre à jour la variable vitam_repositories sous environments/group_vars/all/main/repositories.yml afin de renseigner les dépôts à la version cible.

Puis exécutez le playbook suivant sur tous les sites :

ansible-playbook -i environments/<inventaire> ansible-vitam-extra/bootstrap.yml --ask-vault-pass

4.3.5.2.3. Montée de version vers mongo 4.4

Prudence

Cette opération doit être effectuée AVANT la montée de version vers la V6RC

Prudence

Sans cette opération, la montée de version d’une version existante vers une V6RC sera bloquée au démarrage des instances mongod par une incompatibilité.

Exécutez le playbook suivant:

ansible-playbook -i environments/<inventaire> ansible-vitam-migration/migration_mongodb_44.yml --ask-vault-pass

Ce playbook effectue la montée de version de mongodb d’une version 4.2 vers une version 4.4 selon la procédure indiquée dans la documentation Mongodb. Cette procédure n’a pas été testée avec une version mongodb inférieure à 4.2.

4.3.5.2.4. Montée de version vers mongo 5.0

Prudence

Cette montée de version doit être effectuée AVANT la montée de version V6RC de vitam et après la montée de version en mongodb 4.4 ci-dessus.

Exécutez le playbook suivant:

ansible-playbook -i environments/<inventaire> ansible-vitam-migration/migration_mongodb_50.yml --ask-vault-pass

Ce playbook change le « Read and write Concern » des replicaset par reconfiguration, il désinstalle et réinstalle les binaires et il change également le paramètre « SetFeatureCompatibility » à 5.0.

Une fois ces montées de version de Mongodb réalisées la montée de version Vitam classique peut être réalisée.

4.3.5.2.5. Réinitialisation de la reconstruction des registres de fond des sites secondaires

Prudence

Cette procédure doit être exécutée uniquement en cas de :

  • migration majeure depuis une version R16.6- (4.0.6 ou inférieure)
  • migration majeure depuis une version v5.rc.3- (v5.rc.3 ou inférieure)
  • migration majeure depuis une version v5.0.

Cette procédure permet la réinitialisation de la reconstruction des registre de fonds sur les sites secondaires.

La procédure est à réaliser sur tous les sites secondaires de Vitam AVANT l’installation de la nouvelle version :

  • S’assurer que les timers de Vitam aient bien été préalablement arrêtés (via le playbook ansible-vitam-exploitation/stop_vitam_timers.yml)

  • Exécuter le playbook :

    ansible-playbook ansible-vitam-migration/migration_accession_register_reconstruction.yml -i environments/hosts.{env} --ask-vault-pass
    

4.3.5.2.6. Contrôle et nettoyage de journaux du storage engine des sites secondaires

Prudence

Cette procédure doit être exécutée uniquement en cas de :

  • migration majeure depuis une version R16.6- (4.0.6 ou inférieure)
  • migration majeure depuis une version v5.rc.3- (v5.rc.3 ou inférieure)
  • migration majeure depuis une version v5.0.

Cette procédure permet le contrôle et la purge des journaux d’accès et des journaux d’écriture du storage engine des sites secondaires.

La procédure est à réaliser sur tous les sites secondaires de Vitam AVANT l’installation de la nouvelle version :

  • S’assurer que Vitam soit bien préalablement arrêté (via le playbook ansible-vitam-exploitation/stop_vitam.yml)

  • Exécuter le playbook :

    ansible-playbook ansible-vitam-migration/migration_purge_storage_logs_secondary_sites.yml -i environments/hosts.{env} --ask-vault-pass
    

4.3.5.2.7. Arrêt complet de Vitam

Prudence

Cette opération doit être effectuée AVANT la montée de version vers la V6RC

Prudence

Cette opération doit être effectuée avec les sources de déploiements de l’ancienne version.

Vitam doit être arrêté sur tous les sites :

ansible-playbook -i environments/<inventaire> ansible-vitam-exploitation/stop_vitam.yml --ask-vault-pass

4.3.5.2.8. Nettoyage des fichiers timers, services et conf suite à la migration vers le scheduler

Prudence

Cette étape doit être effectuée AVANT la montée de version V6RC et sur un Vitam éteint.

Prudence

Cette opération doit être effectuée avec les sources de déploiement de la nouvelle version.

Executez le playbook suivant :

ansible-playbook -i environments/<inventaire> ansible-vitam-migration/remove_old_files_for_scheduler_migration.yml --ask-vault-pass

Ce playbook supprime les fichiers .service, .sh, .timers et .conf suite au passage vers le scheduler Quartz sur les hosts concernés.

4.3.5.3. Application de la montée de version

Prudence

L’application de la montée de version s’effectue d’abord sur les sites secondaires puis sur le site primaire.

4.3.5.3.1. Lancement du master playbook vitam

ansible-playbook -i environments/<inventaire> ansible-vitam/vitam.yml --ask-vault-pass

4.3.5.3.2. Lancement du master playbook extra

ansible-playbook -i environments/<inventaire> ansible-vitam-extra/extra.yml --ask-vault-pass

4.3.5.4. Procédures à exécuter APRÈS la montée de version

4.3.5.4.1. Arrêt des jobs Vitam et des accès externes à Vitam

Prudence

Cette opération doit être effectuée IMMÉDIATEMENT APRÈS la montée de version vers la V6RC

Les jobs Vitam et les services externals de Vitam doivent être arrêtés sur tous les sites :

ansible-playbook -i environments/<inventaire> ansible-vitam-exploitation/stop_external.yml --ask-vault-pass
ansible-playbook -i environments/<inventaire> ansible-vitam-exploitation/stop_vitam_scheduling.yml --ask-vault-pass
ansible-playbook -i environments/<inventaire> ansible-vitam-exploitation/stop_vitam_scheduler.yml --ask-vault-pass

4.3.5.4.2. Migration des groupes d’objets

Prudence

Cette migration doit être effectuée APRÈS la montée de version V6RC mais avant la réouverture du service aux utilisateurs.

Cette migration de données consiste à ajouter les champs _acd (date de création approximative) et _aud (date de modification approximative) dans la collection ObjectGroup.

Elle est réalisée en exécutant la procédure suivante sur tous les sites (primaire et secondaire(s)) :

  • Migration des unités archivistiques sur mongo-data (le playbook va stopper les externals avant de procéder à la migration) :
ansible-playbook -i environments/<inventaire> ansible-vitam-migration/migration_v6rc.yml --ask-vault-pass

Après le passage du script de migration, il faut procéder à la réindexation de toutes les groupes d’objets :

  ansible-playbook -i environments/<inventaire> ansible-vitam-exploitation/reindex_es_data.yml --tags objectgroup --ask-vault-pass

..

4.3.5.4.3. Recalcul du graph des métadonnées des sites secondaires

Prudence

Cette procédure doit être exécutée uniquement en cas de :

  • migration majeure depuis une version R16.6- (4.0.6 ou inférieure)
  • migration majeure depuis une version v5.rc.3- (v5.rc.3 ou inférieure)
  • migration majeure depuis une version v5.0.

Cette procédure permet le recalcul du graphe des métadonnées sur les sites secondaires

La procédure est à réaliser sur tous les sites secondaires de Vitam APRÈS l’installation de la nouvelle version :

  • S’assurer que Vitam soit bien préalablement arrêté (via le playbook ansible-vitam-exploitation/stop_vitam_timers.yml)

  • Exécuter le playbook :

    ansible-playbook ansible-vitam-migration/migration_metadata_graph_reconstruction.yml -i environments/hosts.{env} --ask-vault-pass
    

4.3.5.4.4. Réindexation des référentiels sur elasticsearch

Cette migration de données consiste à mettre à jour le modèle d’indexation des référentiels sur elasticsearch-data.

Elle est réalisée en exécutant la procédure suivante sur tous les sites (primaire et secondaire(s)) :

ansible-playbook -i environments/<inventaire> ansible-vitam-exploitation/reindex_es_data.yml --ask-vault-pass --tags "securityprofile, context, ontology, ingestcontract, agencies, accessionregisterdetail, archiveunitprofile, accessionregistersummary, accesscontract, fileformat, filerules, profile, griffin, preservationscenario, managementcontract"

4.3.5.4.5. Migration des mappings elasticsearch pour les métadonnées

Cette migration de données consiste à mettre à jour le modèle d’indexation des métadonnées sur elasticsearch-data.

Elle est réalisée en exécutant la procédure suivante sur tous les sites (primaire et secondaire(s)) :

ansible-playbook -i environments/<inventaire> ansible-vitam-migration/migration_elasticsearch_mapping.yml --ask-vault-pass

4.3.5.4.6. Redémarrage des Jobs Vitam et des accès externes à Vitam

La montée de version est maintenant terminée, vous pouvez réactiver les services externals ainsi que les jobs Vitam sur tous les sites :

ansible-playbook -i environments/<inventaire> ansible-vitam-exploitation/start_external.yml --ask-vault-pass
ansible-playbook -i environments/<inventaire> ansible-vitam-exploitation/start_vitam_scheduler.yml --ask-vault-pass
ansible-playbook -i environments/<inventaire> ansible-vitam-exploitation/start_vitam_scheduling.yml --ask-vault-pass