Skip to main content

Renommer le FQDN et passer en HTTPS sur Medulla

S'applique à : Medulla
Version : Toutes
Environnement : On-Premise
Catégorie : Administration serveur

Contexte

Cette procédure permet de modifier le FQDN (nom DNS complet) d’une instance Medulla.

Exemple :

medulla.ancien-domaine.lan → medulla.nouveau-domaine.fr

Le script rename_fqdn_and_protocol.py permet également :

  • De modifier automatiquement les fichiers de configuration Medulla
  • De mettre à jour les URLs stockées en base de données
  • De migrer de http vers https
  • De configurer automatiquement Apache pour SSL
  • De régénérer les agents Medulla avec le nouveau FQDN

Important :
Avant d’exécuter le script, le nouveau FQDN doit être résolvable par DNS et pointer vers votre serveur Medulla.
Ne supprimez pas l’ancien enregistrement DNS tant que tous les postes n’ont pas basculé sur le nouveau FQDN (voir Propagation vers les postes clients).


Pré-requis

  • Le nouveau FQDN doit exister dans le DNS
  • Le nouveau FQDN doit pointer vers l’adresse IP du serveur Medulla
  • L’ancien FQDN doit rester résolvable pendant toute la période de transition
  • Le script doit être exécuté en root
  • Le module Python mysql-connector (paquet mysql-connector-python) doit être installé
  • Pour HTTPS : disposer d’un certificat SSL au format PEM couvrant le nouveau FQDN (CN ou SAN), ainsi que de sa clé privée non chiffrée

Sauvegarde avant exécution

Recommandation :
Le script n’effectue aucun rollback automatique. Sauvegardez les fichiers de configuration et la base xmppmaster avant exécution.

mysqldump xmppmaster > /root/xmppmaster_$(date +%F).sql
tar czf /root/conf_backup_$(date +%F).tgz /etc/mmc /etc/pulse-xmpp-agent* /etc/apache2

Téléchargement du script

Télécharger le script :

wget https://dl.medulla-tech.io/ma/rename_fqdn_and_protocol.py

Le rendre exécutable :

chmod +x rename_fqdn_and_protocol.py

Afficher l’aide du script :

./rename_fqdn_and_protocol.py --help

Modifier le FQDN du serveur

Pour modifier un FQDN existant :

medulla.mondomaine.lan → medulla.mondomaine.fr

Commande :

./rename_fqdn_and_protocol.py \
--old-fqdn medulla.mondomaine.lan \
--new-fqdn medulla.mondomaine.fr

Cette commande met automatiquement à jour les fichiers de configuration Medulla, les URLs Guacamole, les paramètres Apache et la base xmppmaster. Le détail figure dans la section Que modifie exactement le script ?


Propagation vers les postes clients

L’URL Guacamole de chaque machine est mise à jour en base avec un marquage de reconfiguration (need_reconf). La nouvelle URL est ensuite transmise à chaque poste lors de son prochain check-in auprès du serveur Medulla.

Information :
Le changement de FQDN n’est donc pas instantané côté clients : la propagation dépend de la fréquence de connexion des agents. Il est normal que certains postes pointent encore temporairement vers l’ancienne URL Guacamole. Les postes éteints ou hors réseau ne basculeront qu’à leur prochaine connexion.

Attention :
Conservez l’ancien enregistrement DNS jusqu’à ce que tous les postes aient basculé. Le supprimer trop tôt coupe la communication avec les postes qui ne sont pas encore reconfigurés.


Modifier le protocole HTTP → HTTPS

Il est possible de migrer simultanément les URLs de http vers https.

Commande :

./rename_fqdn_and_protocol.py \
--old-fqdn medulla.mondomaine.lan \
--new-fqdn medulla.mondomaine.fr \
--new-protocol https

Le protocole est automatiquement remplacé dans les URLs gérées par Medulla. Si l’option --new-protocol n’est pas spécifiée, le protocole existant est conservé.

Attention :
Pour une configuration HTTPS complète, fournissez un certificat SSL valide pour le nouveau FQDN. Les options --ssl-pem-chain-filename et --ssl-pem-key-filename s’utilisent ensemble, avec --new-protocol https.

Exemple complet avec certificat SSL

./rename_fqdn_and_protocol.py \
--old-fqdn medulla.ancien.fr \
--new-fqdn medulla.nouveau.fr \
--new-protocol https \
--ssl-pem-chain-filename /root/fullchain.pem \
--ssl-pem-key-filename /root/privkey.pem

Le script réalise automatiquement :

  • L’activation SSL d’Apache
  • La configuration des VirtualHosts HTTPS
  • La redirection HTTP → HTTPS
  • L’installation des certificats

Information :
La clé privée n’étant pas chiffrée, restreignez ses droits avant exécution :

chmod 600 /root/privkey.pem

Régénérer les agents avec le nouveau FQDN

Si les postes clients communiquent directement avec Medulla via le FQDN public, il est recommandé de régénérer les agents afin qu’ils utilisent le nouveau nom DNS.

Commande :

./rename_fqdn_and_protocol.py \
--old-fqdn medulla.mondomaine.lan \
--new-fqdn medulla.mondomaine.fr \
--update-agent-conf

Information :
Cette option met à jour les fichiers agentconf.ini et .generation_options, puis régénère automatiquement les agents Medulla.

Attention :
Après régénération, la nouvelle configuration doit être déployée sur les postes pour qu’ils continuent à communiquer avec le serveur Medulla. Conservez l’ancien enregistrement DNS jusqu’à la fin de ce déploiement.


Options disponibles du script

Argument Obligatoire Description
--old-fqdn Oui FQDN actuel à remplacer
--new-fqdn Oui Nouveau FQDN Medulla
--new-protocol Non http ou https. Si absent, le protocole existant est conservé
--ssl-pem-chain-filename Non Certificat SSL PEM (chaîne complète). À utiliser avec --ssl-pem-key-filename et --new-protocol https
--ssl-pem-key-filename Non Clé privée PEM non chiffrée. À utiliser avec --ssl-pem-chain-filename et --new-protocol https
--update-agent-conf Non Régénère les agents avec le nouveau FQDN

Que modifie exactement le script ?

Élément Action réalisée
relayconf.ini.local Mise à jour de l’URL Guacamole
xmppmaster.ini.local Mise à jour des URLs Guacamole / Graph / Render
assessor_agent.ini.local Mise à jour de l’URL Guacamole
Base xmppmaster Mise à jour des URLs Guacamole des tables machines et relayserver, avec marquage need_reconf
Apache Mise à jour ProxyPass / Referer / SSL
Agents Medulla Reconfiguration et régénération (uniquement avec --update-agent-conf)
Script Windows install-agent.ps1 Mise à jour de l’URL de téléchargement (systématique, avec ou sans --update-agent-conf)

Services automatiquement redémarrés

Pendant l’exécution du script, les services suivants sont automatiquement redémarrés :

  • pulse-xmpp-agent-relay
  • mmc-agent
  • pulse-xmpp-master-substitute-assessor
  • apache2

Attention :
Une courte interruption de service peut être observée pendant l’exécution du script.


Vérifications après exécution

  • L’interface Medulla est accessible via le nouveau FQDN (et en HTTPS si configuré)
  • Les services redémarrés sont actifs :
    systemctl status pulse-xmpp-agent-relay mmc-agent pulse-xmpp-master-substitute-assessor apache2
  • Aucune référence à l’ancien FQDN ne subsiste dans la configuration :
    grep -r "medulla.ancien-domaine.lan" /etc/mmc /etc/pulse-xmpp-agent* /etc/apache2
  • Suivre la bascule des postes : le nombre de machines encore marquées need_reconf doit diminuer au fil des check-ins.

Cas particulier : assessor distant

Si le serveur assessor est hébergé sur un serveur distant, le script ne pourra pas mettre à jour automatiquement le fichier suivant :

/etc/pulse-xmpp-agent-substitute/assessor_agent.ini.local

Dans ce cas, sur le serveur concerné, remplacez l’ancien FQDN (et le protocole le cas échéant) dans l’URL Guacamole de ce fichier, puis redémarrez le service :

systemctl restart pulse-xmpp-master-substitute-assessor

Cet échec n’interrompt pas l’exécution du script : les étapes suivantes sont réalisées normalement.


Gestion des erreurs

En cas d’échec, le script s’arrête immédiatement (à l’exception du cas de l’assessor distant ci-dessus).

Important :
Le script n’effectue aucun rollback automatique.

Les modifications déjà appliquées restent présentes. Une fois le problème corrigé, le script peut être relancé sans risque : les opérations sont idempotentes, un remplacement déjà effectué est sans effet (les services concernés seront toutefois redémarrés à nouveau). En cas de besoin, restaurez la sauvegarde réalisée avant exécution.


Valeurs par défaut

Élément Valeur
Hôte SQL localhost
Port SQL 3306
Utilisateur SQL mmc
Mot de passe SQL Aucune valeur par défaut : lu depuis la configuration
Protocole Conservé si non spécifié
HTTPS Optionnel
Régénération agent Désactivée sans --update-agent-conf

Information :
Les paramètres de connexion SQL sont lus depuis /etc/mmc/plugins/xmppmaster.ini (et .local s’il existe). Les valeurs ci-dessus s’appliquent uniquement si elles n’y sont pas définies.