h1. Changement du nom de domaine de base d’une instance de Publik sur le SaaS h2. Prérequis h3. DNS / Certificats Puppet etc. * TODO lien vers une page qui expliquerait où/comment, vite fait prod : modules/haproxy/files/prod.saas.entrouvert.org/bundles/ * TODO info dans le cas de let's encrypt h3. haproxy Puppet etc. pareil qu'un déploiement, i.e. modif publik.map, ex: modules/haproxy/files/prod.saas.entrouvert.org/publik.map h3. Migration des chemins des pièces jointes dans wcs Uniquement pour les instances déployées avant le 11 novembre 2021 (#21731)

from wcs.carddef import CardDef
from wcs.formdef import FormDef


for formdef in FormDef.select(ignore_migration=True) + CardDef.select(ignore_migration=True):
    for formdata in formdef.data_class().select_iterator(ignore_errors=True, itersize=200):
        formdata.store()

sudo -u wcs wcs-manage runscript -d formulaires.demarches.maville.fr fichierdemigrationcidessus.py h3. FC : ajout des callback vers nouveau nom de domaine dans l'interface partenaire En plus des callback déjà présent. Les anciens pourront être supprimés après la migration. https://partenaires.franceconnect.gouv.fr/login Une fois la modif faite, surveiller les mails envoyés à franceconnect@entrouvert.com (de support.partenaires@franceconnect.gouv.fr) : #69830 h3. En cas de changement de nom de domaine uniquement sur certaines briques Si on me migre pas l'ensemble des applications, il faut d'abord mettre en place un menu personnalisé : (@"PUBLIK_EXPLICIT_MENU": true@). Sinon problèmes d'affichage du menu (#54359#note-85). * Ça reste scabreux* #66280 h2. Opération de migration h3. Mettre la plateforme en mode maintenance Via le menu maintenance dans hobo : * couper les cron * activer la page de maintenance *Attention* il faut que les IP autorisées aient été configurés sur l'infra, ex: #66099 . h3. Mise en place des tenants avec les nouveaux noms On commence par les services "lambda", commande la commande hobo @rename_service@ :
hobo-manage tenant_command rename_service https://demarches.maville.fr/ https://nouvellesdemarches.maville.fr/ -d hobo.demarches.maville.fr
hobo-manage tenant_command rename_service https://formulaires.demarches.maville.fr/ https://formulaires.nouvellesdemarches.maville.fr/ -d hobo.demarches.maville.fr
...
On termine par hobo via la commande @rename_hobo_service@:
hobo-manage rename_hobo_service https://hobo.demarches.maville.fr/ https://hobo.nouvellesdemarches.maville.fr/
Sur les déploiements multi collectivités, pour les services lambda la commande @rename_service@ doit être lancée sur le tenant hobo qui contrôle le service :
hobo-manage tenant_command rename_service https://demarches.ville1.fr/ https://nouvellesdemarches.ville1.fr/ -d hobo.demarches.ville1.fr
hobo-manage tenant_command rename_service https://demarches.ville2.fr/ https://nouvellesdemarches.ville2.fr/ -d hobo.demarches.ville2.fr
Les hobo secondaires se migrent comme des services lambda, en s'adressant au tenant du hobo primaire :
hobo-manage tenant_command rename_service https://hobo.demarches.ville1.fr/ https://hobo.nouvellesdemarches.ville1.fr/ -d hobo.demarches.metrolpole.fr
hobo-manage tenant_command rename_service https://hobo.demarches.ville2.fr/ https://hobo.nouvellesdemarches.ville2.fr/ -d hobo.demarches.metrolpole.fr
* +Attention+ * : La migration du service authentic peut être longue et terminée en timeout, cela ne veut pas dire qu'elle ne s'effectue pas en arrière-plan. *Attendre que le service authentic soit migré* avant de continuer la procédure (sinon l'authentification des services ne serait pas modifiée) en cas d'erreur lors de la migration : la configuration des différents modules *doit* passer par hobo et les messages rabbitmq. pour redéployer (et corriger les erreurs de migration), passer par hobo et faire un changement, exemple sur https://hobo-tm.test.entrouvert.org/sites/ : bougez le curseur dans un champ titre puis cliquez sur enregistrer. h3. Modifications manuelles coté authentic si relié à un annuaire en SAML * Dans le settings.json les chemins vers les clé privé/publique à changer.
- "MELLON_PRIVATE_KEY": "/var/lib/authentic2-multitenant/tenants/connexion.demarches.maville.fr/saml.key",
+ "MELLON_PRIVATE_KEY": "/var/lib/authentic2-multitenant/tenants/connexion.nouvellesdemarches.maville.fr/saml.key",
- "MELLON_PUBLIC_KEYS": [
    "/var/lib/authentic2-multitenant/tenants/connexion.demarches.maville.fr/saml.crt"
  ],
+ "MELLON_PUBLIC_KEYS": [
    "/var/lib/authentic2-multitenant/tenants/connexion.nouvellesdemarches.maville.fr/saml.crt"
  ],
* Dans l'interface - moyens d'authentification : changer le chemin d'accès aux métadonnées de l'annuaire * La collectivité doit changer le paramétrage de son coté (ou préparer le terrain avant ?) h3. Modifications manuelles coté bijoe (si wcs a changé de nom, sinon rien à faire) Regarder wcs-olap.ini (dans le répertoire du tenant bijoe), une nouvelle section a du apparaître : https://formulaires.nouvellesdemarches.maville.fr/ (en plus de https://formulaires.demarches.maville.fr/) Sur la base de donnée bijoe, il faut supprimer le schéma de la section https://formulaires.demarches.maville.fr/ :
DROP SCHEMA formulaires_demarches_maville_fr;
Dans wcs-olap.ini, supprimer la section https://formulaires.demarches.maville.fr/. Dans le répertoire du tenant, supprimer l'ancien modèle de données : @rm /var/lib/bijoe/tenants/xxx/schemas/formulaires_demarches_maville_fr.model@ Éventuellement relancer une synchro : @sudo -u bijoe /usr/bin/wcs-olap --all /var/lib/bijoe/tenants/xxx/wcs-olap.ini@ (ou attendre la nuit que ça se fasse tout seul) h3. Mettre en place des redirections des anciens nom vers les nouveaux noms Via puppet, modification haproxy pour rediriger automatiquement tous les requêtes faites sur l'ancien nom vers le nouveau nom.
--- a/modules/haproxy/files/prod.saas.entrouvert.org/publik.map
+++ b/modules/haproxy/files/prod.saas.entrouvert.org/publik.map 
-demarches.maville.fr combo-balancer
-formulaires.demarches.maville.fr wcs-balancer
....
+demarches.maville.fr redirect-map
+formulaires.demarches.maville.fr redirect-map
.....
--- a/modules/haproxy/files/prod.saas.entrouvert.org/redirect.map
+++ b/modules/haproxy/files/prod.saas.entrouvert.org/redirect.map
 
+demarches.maville.fr https://nouvellesdemarches.maville.fr
+formulaires.demarches.maville.fr https://formulaires.nouvellesdemarches.maville.fr
....
Pour les impatients, sur node1/node2 forcer la mise à jour via puppet : @sudo puppet agent -t@. h3. Désactiver le mode maintenance * rétablir les cron * désactiver la page de maintenance h2. Postface Dans [[HowDoWeDoPublikDomainNameChange]] il est écrit pour FranceConnect : S'assurer que côté FranceConnect il y a juste changement d'URLs d'authentic et non la création d'un nouveau compte avec des nouveaux client_id et client_secret. Cela permet (en théorie) d'avoir les mêmes subs pour les comptes déjà fédérés. h2. Retour d'expérience effectué : Ci-dessous les tickets où l'on a appliqué la procédure et les problèmes rencontrés lors de celle-ci : #72194 #68266