Skip to content

Commit 9a1a5ba

Browse files
committed
Story #10672 : Migrate metadata graph reconstruction
1 parent 83c806e commit 9a1a5ba

File tree

5 files changed

+128
-0
lines changed

5 files changed

+128
-0
lines changed
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
---
2+
# Confirm launching this playbook
3+
- hosts: localhost
4+
any_errors_fatal: yes
5+
gather_facts: no
6+
vars_prompt:
7+
name: "confirmation"
8+
prompt: "You are about to run metadata graph reconstruction migration playbook for secondary sites.\nThis might take some time.\nAre you sure you want to run this playbook ?\nAnswer with 'YES'"
9+
default: "NO"
10+
private: no
11+
tasks:
12+
- name: Check Confirmation
13+
fail: msg="Playbook run confirmation failed"
14+
when: confirmation|upper != "YES"
15+
16+
- hosts: hosts_metadata
17+
any_errors_fatal: yes
18+
roles:
19+
- migrate_metadata_graph_reconstruction
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
---
2+
- block:
3+
4+
- name: Ensure that current site is a secondary site.
5+
fail:
6+
msg: "Cannot run this migration playbook on a primary site"
7+
when: primary_site | lower != 'false'
8+
9+
- name: Update metadata graph per tenant
10+
uri:
11+
url: "http://{{ ip_admin }}:{{ vitam.metadata.port_admin }}/metadata/v1/computegraph"
12+
method: POST
13+
force_basic_auth: yes
14+
user: "{{ admin_basic_auth_user }}"
15+
password: "{{ admin_basic_auth_password }}"
16+
# WARNING: For historical reasons, we need to explicitly set the $depth to 0,
17+
# otherwise graph fields might be queried internally
18+
body: '{"$roots": [],"$query": [{"$exists": "#id" ,"$depth" : 0}],"$filter": {},"$projection": {}}'
19+
body_format: "json"
20+
headers:
21+
Content-Type: application/json
22+
Accept: application/json
23+
X-Tenant-Id: "{{ item }}"
24+
status_code: 200
25+
timeout: "{{ migration_timeout }}"
26+
loop: "{{ vitam_tenant_ids }}"
27+
28+
run_once: true
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
3+
# Migration timeout in seconds (defaults to 10 hours per tenant)
4+
migration_timeout: 36000

doc/fr/migration/updates/bugfixes_updates/r16_update.rst

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,18 @@ La procédure est à réaliser sur tous les **sites secondaires** de Vitam AVANT
5858
Procédures à exécuter APRÈS la montée de version
5959
================================================
6060

61+
Arrêt des timers et des accès externes à Vitam
62+
----------------------------------------------
63+
64+
Les timers et les externals de Vitam doivent être arrêtés sur **tous les sites** :
65+
66+
.. code-block:: bash
67+
68+
ansible-playbook -i environments/<inventaire> ansible-vitam-exploitation/stop_external.yml --ask-vault-pass
69+
ansible-playbook -i environments/<inventaire> ansible-vitam-exploitation/stop_vitam_timers.yml --ask-vault-pass
70+
71+
..
72+
6173
Migrations offres Swift V2 & V3 en cas de présence d'objets très volumineux (4Go+)
6274
----------------------------------------------------------------------------------
6375

@@ -96,3 +108,29 @@ Si des problèmes de cohérence de type "Orphan large object segments" persisten
96108
Dans ce cas, il est recommandé de vérifier préalablement que les objets concernés n'existent pas sur les autres offres (mêmes container & objectName).
97109
Si les objets n'existent pas dans les autres offres, il s'agit alors de reliquats d'objets non complètement éliminés. Le lancement du mode 2 (correction des anomalies + purge des objets) est à réaliser.
98110
Dans le cas contraire (cas où l'objet existe dans les autres offres), il faudra envisager la "Procédure de resynchronisation ciblée d’une offre" décrite dans la Documentation d’EXploitation (DEX) de Vitam pour synchroniser l'offre Swift pour les éléments concernés.
111+
112+
Recalcul du graph des métadonnées des sites secondaires
113+
-------------------------------------------------------
114+
115+
.. caution:: Cette procédure doit être exécutée uniquement en cas de migration depuis une version R16.6- (4.0.6 ou inférieure) vers une version R16.7+ (4.0.7 ou supérieure). Elle permet le recalcul du graphe des métadonnées sur les sites secondaires
116+
117+
La procédure est à réaliser sur tous les **sites secondaires** de Vitam APRÈS l'installation de la nouvelle version :
118+
119+
- S'assurer que Vitam soit bien préalablement arrêté (via le playbook ``ansible-vitam-exploitation/stop_vitam_timers.yml``)
120+
- Exécuter le playbook :
121+
122+
.. code-block:: bash
123+
124+
ansible-playbook ansible-vitam-migration/migration_metadata_graph_reconstruction.yml -i environments/hosts.{env} --ask-vault-pass
125+
126+
..
127+
128+
Redémarrage des timers et des accès externes à Vitam
129+
----------------------------------------------------
130+
131+
La montée de version est maintenant terminée, vous pouvez réactiver les services externals ainsi que les timers sur **tous les sites** :
132+
133+
.. code-block:: bash
134+
135+
ansible-playbook -i environments/<inventaire> ansible-vitam-exploitation/start_external.yml --ask-vault-pass
136+
ansible-playbook -i environments/<inventaire> ansible-vitam-exploitation/start_vitam_timers.yml --ask-vault-pass

doc/fr/migration/updates/releases_updates/r16_update.rst

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,45 @@ La procédure est à réaliser sur tous les **sites secondaires** de Vitam AVANT
9494
9595
..
9696
97+
Procédures à exécuter APRÈS la montée de version
98+
================================================
99+
100+
Arrêt des timers et des accès externes à Vitam
101+
----------------------------------------------
102+
103+
Les timers et les externals de Vitam doivent être arrêtés sur **tous les sites** :
104+
105+
.. code-block:: bash
106+
107+
ansible-playbook -i environments/<inventaire> ansible-vitam-exploitation/stop_external.yml --ask-vault-pass
108+
ansible-playbook -i environments/<inventaire> ansible-vitam-exploitation/stop_vitam_timers.yml --ask-vault-pass
109+
110+
Recalcul du graph des métadonnées des sites secondaires
111+
-------------------------------------------------------
112+
113+
.. caution:: Cette procédure doit être exécutée uniquement en cas de migration majeure vers une version R16.7+ (4.0.7 ou supérieure). Elle permet le recalcul du graphe des métadonnées sur les sites secondaires
114+
115+
La procédure est à réaliser sur tous les **sites secondaires** de Vitam APRÈS l'installation de la nouvelle version :
116+
117+
- S'assurer que Vitam soit bien préalablement arrêté (via le playbook ``ansible-vitam-exploitation/stop_vitam_timers.yml``)
118+
- Exécuter le playbook :
119+
120+
.. code-block:: bash
121+
122+
ansible-playbook ansible-vitam-migration/migration_metadata_graph_reconstruction.yml -i environments/hosts.{env} --ask-vault-pass
123+
124+
..
125+
126+
Redémarrage des timers et des accès externes à Vitam
127+
----------------------------------------------------
128+
129+
La montée de version est maintenant terminée, vous pouvez réactiver les services externals ainsi que les timers sur **tous les sites** :
130+
131+
.. code-block:: bash
132+
133+
ansible-playbook -i environments/<inventaire> ansible-vitam-exploitation/start_external.yml --ask-vault-pass
134+
ansible-playbook -i environments/<inventaire> ansible-vitam-exploitation/start_vitam_timers.yml --ask-vault-pass
135+
97136
Vérification de la bonne migration des données
98137
==============================================
99138

0 commit comments

Comments
 (0)