La procédure de migration est la suivante : Récupérer le mot de passe w.c.s. de connexion à la base de donnée ----------------------------------------------------------------- Il faut récupérer le mot de passe sur une autre instance, sur la cible : https://demarches-eurelien.test.entrouvert.org/backoffice/settings/postgresql puis utiliser l'inspecteur pour récupérer le mot de passe. Ou sinon en ligne de commande : :: $ sudo -u wcs wcs-manage shell -d demarches-eurelien.test.entrouvert.org In [1]: from quixote import get_publisher In [2]: print(get_publisher().cfg['postgresql'].get('createdb-connection-params', {})) Récupérer les identifiant de connexion à la BD et le dsn sentry sur wcs-olap ---------------------------------------------------------------------------- Il faut récupérer ces information sur la cible, dans les fichiers wcs-olap.ini des instances déjà migrées (en recette, il s'agit du même mot de passe que pour w.c.s). Recopier le certificat ---------------------- Pour la recette rien a faire le certificat wildcard est déja en place pour test.entrouvert.org :: $ haproxy.test-hds.saas.entrouvert:/etc/ssl/bundles$ openssl x509 -in test.entrouvert.org.pem -text Re-diriger vers une page de travaux ----------------------------------- Ce n'est pas encore possible en recette. Jouer une première fois le scripts pour cibler la bon noeud ----------------------------------------------------------- (Le script doit être lancé sur le noeud où les crons ne sont pas désactivés) :: $ publik_dump/publik_dump.py tenantinfo node2.test.saas.entrouvert.org hobo-ac-versailles.test.entrouvert.org --update Si un tenant est trop lourd (w.c.s à 18G) ----------------------------------------- * Faire le dump w.c.s à la main :: $ ssh wcs.node1.prod.saas.entrouvert.org $ sudo tar -C /var/lib/wcs -Jcf demarches.demarches.ac-versailles.fr.tar.xz demarches.demarches.ac-versailles.fr $ ^D $ scp wcs.node1.prod.saas.entrouvert.org:demarches.demarches.ac-versailles.fr.tar.xz . * Le restaurer dans un tenant .invalid :: $ scp demarches.demarches.ac-versailles.fr.tar.xz wcs.node1.hds.saas.entrouvert:. $ ssh wcs.node1.hds.saas.entrouvert $ sudo tar -Jxf demarches.demarches.ac-versailles.fr.tar.xz $ mv demarches.demarches.ac-versailles.fr /var/lib/wcs/demarches.demarches.ac-versailles.fr.invalid * Sauter le dump et le restore w.c.s. en décommentant ces 4 lignes dans le script :: #if service["name"] == "wcs": # continue # in order to run rsync instead, a second time on large tenant dump * Lors de la migration, passer ce répertoire et le synchroniser via rsync Invalider les tenants --------------------- Pour ne pas avoir les cron qui se jouent sur les 2 instances. :: $ publik_dump/publik_dump.py invalidate_source node2.test.saas.entrouvert.org hobo-ac-versailles.test.entrouvert.org Dump ---- (tenant + base de donnée) :: $ publik_dump/publik_dump.py dump node2.test.saas.entrouvert.org hobo-ac-versailles.test.entrouvert.org Restore ------- :: $ publik_dump/publik_dump.py restore node2.test.saas.entrouvert.org hobo-ac-versailles.test.entrouvert.org --target node1.test-hds.saas.entrouvert --dbtarget sql3.test-hds.saas.entrouvert Mise à jour des identifiant de connexion à la base de donnée de w.c.s. ---------------------------------------------------------------------- Modification du pickle config.pck : :: $ scp publik_dump/adapt_wcs_config.py wcs.node1.test-hds.saas.entrouvert:. $ ssh wcs.node1.test-hds.saas.entrouvert $ sudo -u wcs ./adapt_wcs_config.py /var/lib/wcs/demarches-ac-versailles.test.entrouvert.org.invalid/config.pck --host test-hds.saas.entrouvert.clusters.entrouvert.org --password XXX Remarque, ici on peut tester la connexion : :: $ ssh wcs.node1.test-hds.saas.entrouvert $ psql -U wcs -h test-hds.saas.entrouvert.clusters.entrouvert.org Mot de passe pour l'utilisateur wcs : XXX et aussi que tout va bien côté wcs : :: $ sudo -u wcs wcs-manage shell -d demarches-ac-versailles.test.entrouvert.org.invalid Mise à jour des identifiant de connexion à la BD et du dsn sentry de wcs-olap ----------------------------------------------------------------------------- Modification de wcs-olap.ini : :: $ ssh bijoe.node1.test-hds.saas.entrouvert $ sudo -u bijoe vi /var/lib/bijoe/tenants/statistiques-ac-versailles.test.entrouvert.org.invalid/wcs-olap.ini ... pg_dsn = dbname='bijoe' host='test-hds.saas.entrouvert.clusters.entrouvert.org' password='YYY' [sentry] dsn = https://39e69f265d6d41adbba9cbdd9f1d4573@sentry.entrouvert.org/6 environment = test ... Remarque, ici on peut tester la connexion et l'import : :: ssh bijoe.node1.test-hds.saas.entrouvert psql -U bijoe -h test-hds.saas.entrouvert.clusters.entrouvert.org Mot de passe pour l'utilisateur bijoe : YYY bijoe=> set search_path="statistiques_ac_versailles_test_entrouvert_org" bijoe=> \d bijoe=> select * from auth_user; Valider les tenants cibles -------------------------- Cela va également rétablir les crons. :: $ publik_dump/publik_dump.py validate_target node2.test.saas.entrouvert.org hobo-ac-versailles.test.entrouvert.org --target node1.test-hds.saas.entrouvert Rejouer les migrations Passerelle --------------------------------- Parce qu'il y a les deux connecteurs mdph13 et rsa13 en plus sur l'HDS, qui ne sont pas déployé sur le SaaS. :: $ ssh passerelle.node1.test-hds.saas.entrouvert $ sudo -u passerelle passerelle-manage migrate_schemas -v2 Modifier les DNS ---------------- Retirer la redirection haproxy du SaaS --------------------------------------