.. _environment_cleaning: Nettoyage d'un environnement ############################ .. warning :: La procédure suivante ne peut être appliquée QUE sur un environnement de recette et NE DOIT PAS être appliquée sur un environneent 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) : .. code-block:: bash ansible-playbook -i environments/ ansible-vitam-exploitation/cleaning.yml --ask-vault-pass Ou, si un vault-pass-word-file est utilisé .. code-block:: bash ansible-playbook -i environments/ ansible-vitam-exploitation/cleaning.yml --vault-password-file vault_pass.txt 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. .. warning:: Pour le moment, seules les offres de stockage S3 et File-System sont prises en compte dans la purge des offres de stockage. .. caution:: Les nettoyage des offres Swift ne fonctionne que dans le cas d'une installation de la solution logicielle :term:`VITAM` en environnement CentOS. .. warning:: Cette opération provoque une indisponibilité complète de :term:`VITAM` 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. 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).