# 5.31. Nettoyage d’un environnement

Avertissement

La procédure suivante ne doit être appliquée QUE sur un environnement de recette et NE DOIT PAS être utilisée sur un environnement de production.

Un playbook ansible de nettoyage d’un environnement est fourni et permet de purger un environnement afin de le réinitialiser à son état presque initial.

Le nettoyage d’un environnement s’effectue selon la procédure suivante :

- Exécuter la commande suivante afin de nettoyer l’environnement (offres de stockage, workspace et bases de données) :

  >     ansible-playbook ansible-vitam-exploitation/cleaning.yml -i environments/hosts.<environnement> --ask-vault-pass

En détails, le nettoyage d’un environnement va exécuter la liste des actions suivantes :

1. Arrêt des modules externes, afin que Vitam ne puisse plus accepter de demandes provenant de l’extérieur.
2. Purge des collections MongoDB :

> - `LogbookLifeCycleObjectGroup`
> - `LogbookLifeCycleObjectGroupInProcess`
> - `LogbookLifeCycleUnit`
> - `LogbookLifeCycleUnitInProcess`
> - `LogbookOperation`
> - `AccessionRegisterDetail`
> - `AccessionRegisterSummary`
> - `AccessionRegisterSymbolic`
> - `ObjectGroup`
> - `Unit`
> - `EliminationActionObjectGroup`
> - `EliminationActionUnit`
> - `PreservationReport`

3. Réindexation des collections à indexer et purgées en phase 2 : le but étant d’obtenir en fin de traitement des indexes vides (ne contenant aucun document).

> - `LogbookOperation`, `ObjectGroup` & `Unit` : une réindexation sera effectuée pour chaque tenant configuré (ex : unit_0_20190130_104530, unit_1_20190130_104540, etc…).
> - `AccessionRegisterDetail`, `AccessionRegisterSummary`, `AccessionRegisterSymbolic` : 3 nouveaux indexes seront créés au total pour les 3 collections (ex : `accessionregistersymbolic_20190121_133507`, `accessionregistersummary_20190121_133503` & `accessionregisterdetail_20190121_133505`)

4. Nettoyage des offres de stockage. Selon la configuration de l’environnement, le script est en charge de nettoyer chaque offre de stockage configurée :

> - Pour chaque tenant configuré dans Vitam, le script va supprimer tous les sous-containers ainsi que leurs contenus exceptés : « backup » (contenant les référentiels intégrés dans Vitam) et « rules ».
> - Pour l’offre File-System, chaque sous-containers supprimé et vidé de son contenu, sera recréé à vide (ex : `int_0_accessionregisterdetail`)

5. Nettoyage du workspace : le contenu des objets contenus dans le workspace sera purgé également.

Avertissement

Pour le moment, seules les offres de stockage S3 et File-System sont prises en compte dans la purge des offres de stockage.

Prudence

Les nettoyage des offres Swift ne fonctionne que dans le cas d’une installation de la solution logicielle VITAM en environnement CentOS.

Avertissement

Cette opération provoque une indisponibilité complète de VITAM

## 5.31.1. Etat des lieux après purge

Après le passage du script, l’environnement est purgé :

- Les référentiels sont toujours présents (Contrats d’accès, contrats d’entrée, rêgles de gestion, etc…).
- L’environnement est disponible et utilisable : les modules externes sont accessibles (IngestExternal et AccessExternal).
- Les offres de stockage sont vidées, à l’exception des backups des référentiels.
- La cohérence entre MongoDB et ElasticSearch est assurée. La plupart des collections sont vidées, et les indexes E/S associés ne contiennent aucun document.
- Le workspace est purgé, aucune opération n’est en cours et ne peut être relancée.

## 5.31.2. Limitations

Le fait de purger les journaux et non les référentiels provoquera une incohérence de la plate-forme vis-à-vis de la norme NFZ-42020 (suppression des logs d’imports de référentiels, mais présence de ceux-ci).