Reconfigurer le réseau d'un serveur Medulla (IP, FQDN, HTTPS)
S'applique à : Medulla
Version : Toutes
Environnement : On-Premise
Catégorie : Administration serveur
Contexte
Cette procédure permet de modifier la configuration réseau d’une instance Medulla : adresse IP, FQDN (nom DNS complet), passerelle, serveurs DNS et protocole (http / https).
Exemples :
192.168.1.10/24 → 10.0.0.50/24
medulla.ancien-domaine.lan → medulla.nouveau-domaine.fr
Le script reconfigure_network.py remplace l’ancien script rename_fqdn_and_protocol.py. Il permet :
- De changer l’adresse IP, le masque, la passerelle et les serveurs DNS du serveur
- De changer le FQDN de l’instance
- De mettre à jour automatiquement les fichiers de configuration Medulla et la base de données
- De migrer de
httpvershttpset de configurer Apache pour SSL - De régénérer les agents Medulla avec le nouveau FQDN
- De reconfigurer un serveur relais (ARS)
Important :
Si le FQDN change, le nouveau FQDN doit être résolvable par DNS avant l’exécution du script : le script vérifie sa résolution et s’arrête sinon.
Ne supprimez pas l’ancien enregistrement DNS tant que tous les postes n’ont pas basculé (voir Propagation vers les postes clients).
Pré-requis
- Le script doit être exécuté en
root - Le module Python
mysql-connector(paquetmysql-connector-python) doit être installé - Changement de FQDN : le nouveau FQDN existe dans le DNS et pointe vers l’adresse IP (nouvelle ou actuelle) du serveur Medulla
- Changement de FQDN : l’ancien FQDN reste résolvable pendant toute la période de transition
- Changement d’IP : la configuration réseau du serveur est gérée par
/etc/network/interfaces(voir Limites) - Changement d’IP : l’entrée
pulsedu fichier/etc/hostscontient l’adresse IP actuelle (elle sert à détecter l’ancienne IP) - Changement d’IP : disposer d’un accès console au serveur (console hyperviseur, iDRAC/iLO, accès physique) en cas de perte de connexion
- HTTPS : disposer d’un certificat SSL au format PEM couvrant le 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/network/interfaces /etc/hosts /etc/mmc /etc/pulse-xmpp-agent* \
/etc/apache2 /etc/guacamole /var/lib/pulse2/clients/config \
/var/lib/pulse2/clients/.generation_options /var/lib/pulse2/clients/win/install-agent.ps1
Téléchargement du script
Télécharger le script :
wget https://dl.medulla-tech.io/ma/reconfigure_network.py
Le rendre exécutable :
chmod +x reconfigure_network.py
Afficher l’aide du script :
./reconfigure_network.py --help
Déroulement de l’exécution
- Le script vérifie les arguments, détecte l’ancienne IP (entrée
pulsede/etc/hosts) et l’ancien FQDN (nom d’hôte du système, sauf si--old-fqdnest fourni). - Un avertissement s’affiche pendant 10 secondes : appuyez sur
Ctrl+Cpour annuler. - Les fichiers de configuration, la base de données et Apache sont mis à jour, et les services concernés sont redémarrés.
- Si l’IP change, le service réseau est redémarré en dernier. Les instructions de reconnexion s’affichent juste avant.
Conseil :
L’ancien FQDN est déduit du nom d’hôte du serveur. Si celui-ci ne correspond pas au FQDN utilisé par Medulla, indiquez-le explicitement avec --old-fqdn.
Changer l’adresse IP
La nouvelle adresse doit être fournie en notation CIDR (adresse/préfixe). Le masque est déduit du préfixe.
./reconfigure_network.py \
--new-ip 10.0.0.50/24 \
--gateway 10.0.0.1 \
--dns-servers "10.0.0.10 10.0.0.11"
Attention :
Lors d’un changement d’IP, indiquez toujours --gateway et --dns-servers, même s’ils ne changent pas. Sans ces options, les lignes gateway et dns-nameservers existantes sont supprimées de /etc/network/interfaces et le serveur perd sa passerelle et ses DNS.
Attention :
Si vous êtes connecté en SSH, la connexion sera coupée au redémarrage du réseau. Reconnectez-vous ensuite sur la nouvelle adresse IP.
Information :
Si l’interface est configurée en DHCP, elle est convertie en configuration statique avec l’adresse fournie.
Changer le FQDN
./reconfigure_network.py \
--old-fqdn medulla.ancien-domaine.lan \
--new-fqdn medulla.nouveau-domaine.fr
Changer l’IP et le FQDN
./reconfigure_network.py \
--new-ip 10.0.0.50/24 \
--gateway 10.0.0.1 \
--dns-servers "10.0.0.10 10.0.0.11" \
--old-fqdn medulla.ancien-domaine.lan \
--new-fqdn medulla.nouveau-domaine.fr
Passer de HTTP à HTTPS
Le protocole peut être changé en même temps que l’IP ou le FQDN. Si --new-protocol n’est pas spécifié, le protocole existant est conservé.
./reconfigure_network.py \
--old-fqdn medulla.ancien-domaine.lan \
--new-fqdn medulla.nouveau-domaine.fr \
--new-protocol https \
--ssl-pem-chain-filename /root/fullchain.pem \
--ssl-pem-key-filename /root/privkey.pem
Pour passer en HTTPS sans changer de FQDN, indiquez le FQDN actuel dans --new-fqdn (le script exige au moins --new-ip ou --new-fqdn) :
./reconfigure_network.py \
--new-fqdn medulla.mondomaine.fr \
--new-protocol https \
--ssl-pem-chain-filename /root/fullchain.pem \
--ssl-pem-key-filename /root/privkey.pem
Avec un certificat, le script réalise automatiquement :
- La copie du certificat et de la clé dans
/etc/ssl/certs/(clé en droits600) - L’activation des modules Apache
ssletheaders - La configuration et l’activation du site
default-ssl - La redirection HTTP → HTTPS
Attention :
Fournissez toujours le certificat et la clé privée avec --new-protocol https. Sans certificat, les URLs passent en https mais Apache n’est pas configuré pour SSL.
Régénérer les agents
Si les postes clients communiquent avec Medulla via le FQDN, régénérez les agents afin qu’ils utilisent le nouveau nom DNS :
./reconfigure_network.py \
--old-fqdn medulla.ancien-domaine.lan \
--new-fqdn medulla.nouveau-domaine.fr \
--update-agent-conf
Information :
Cette option met à jour agentconf.ini et .generation_options, puis régénère les agents Medulla.
Attention :
Après régénération, les nouveaux agents doivent être déployés sur les postes pour qu’ils continuent à communiquer avec le serveur. Conservez l’ancien enregistrement DNS jusqu’à la fin de ce déploiement.
Reconfigurer un serveur relais (ARS)
Sur un serveur relais, ajoutez l’option --ars :
./reconfigure_network.py \
--ars \
--new-ip 10.0.1.20/24 \
--gateway 10.0.1.1 \
--dns-servers "10.0.0.10 10.0.0.11"
En mode ARS, seuls le réseau, /etc/hosts, relayconf.ini.local et package-server.ini.local sont mis à jour. La base de données, Apache, Guacamole et les agents ne sont pas modifiés.
Reconfigurer uniquement le réseau
L’option --only-network modifie uniquement la configuration réseau et /etc/hosts, sans toucher à la configuration Medulla :
./reconfigure_network.py --only-network \
--new-ip 10.0.0.50/24 --gateway 10.0.0.1 --dns-servers "10.0.0.10"
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 configuration est transmise à chaque poste lors de son prochain check-in.
Information :
La propagation n’est pas instantanée : elle dépend de la fréquence de connexion des agents. 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 non encore reconfigurés.
Options disponibles du script
| Argument | Description |
|---|---|
--new-ip |
Nouvelle adresse IP en notation CIDR (ex. 10.0.0.50/24) |
--new-fqdn |
Nouveau FQDN. Doit être résolvable par DNS |
--old-fqdn |
FQDN actuel. Si absent, déduit du nom d’hôte du serveur |
--gateway |
Passerelle. Prise en compte uniquement avec --new-ip |
--dns-servers |
Serveurs DNS séparés par des espaces, entre guillemets. Pris en compte uniquement avec --new-ip |
--new-protocol |
http ou https. Si absent, le protocole existant est conservé |
--ssl-pem-chain-filename |
Certificat SSL PEM (chaîne complète). À utiliser avec --new-protocol https |
--ssl-pem-key-filename |
Clé privée PEM non chiffrée. À utiliser avec --new-protocol https |
--update-agent-conf |
Met à jour la configuration des agents et les régénère |
--ars |
Mode serveur relais (ARS) |
--only-network |
Reconfigure uniquement le réseau, sans la configuration Medulla |
--log-level |
debug, info (défaut), warning ou error |
Information :
Au moins une des options --new-ip ou --new-fqdn est obligatoire.
Que modifie exactement le script ?
| Élément | Action réalisée | Condition |
|---|---|---|
/etc/network/interfaces |
Adresse, masque, passerelle, DNS | Changement d’IP |
/etc/hosts |
IP de l’entrée pulse |
Changement d’IP |
relayconf.ini.local |
IP du serveur, URL Guacamole | Toujours (hors --only-network) |
xmppmaster.ini.local |
IP du serveur, URLs Guacamole / Graph / Render | Serveur principal |
security.ini.local |
Identifiant serveur (cve_central) |
Serveur principal |
assessor_agent.ini.local |
IP du serveur, URL Guacamole | Serveur principal |
agent_master_substitute_*.ini.local |
IP du serveur | Serveur principal, changement d’IP |
package-server.ini.local |
IP et masque publics | Changement d’IP |
mmc.ini.local |
Description du serveur | Serveur principal, changement de FQDN |
Base xmppmaster |
Table relayserver : URL Guacamole, IP, sous-réseau, masque. Table machines : URL Guacamole et marquage need_reconf |
Serveur principal |
| Apache | ProxyPass / Referer dans guacamole.conf, medulla_agent.conf, pulse.conf, websocketlogs.conf |
Serveur principal |
| Apache SSL | Certificats, site default-ssl, redirection HTTPS |
--new-protocol https avec certificat |
/etc/guacamole/tomcat.xml |
IP du serveur | Serveur principal, changement d’IP |
| Agents Medulla | agentconf.ini, .generation_options, régénération |
--update-agent-conf |
install-agent.ps1 |
URL de téléchargement | Serveur principal, changement de FQDN |
Services automatiquement redémarrés
pulse-xmpp-agent-relaymmc-agentpulse-xmpp-master-substitute-assessor- Tous les substituts (
restart-pulse-services restart allsubs), en cas de changement d’IP pulse2-package-server, en cas de changement d’IPapache2tomcat8(Guacamole), en cas de changement d’IPnetworking, en dernier, en cas de changement d’IP
Attention :
Une interruption de service est à prévoir pendant l’exécution. Planifiez l’opération en dehors des heures d’utilisation.
Après l’exécution
- Mettre à jour les enregistrements DNS (nouvelle IP et/ou nouveau FQDN)
- Mettre à jour les règles de pare-feu si l’IP a changé
- Vérifier l’accès à l’interface Medulla via le nouveau FQDN (et en HTTPS si configuré)
- Vérifier que les services sont actifs :
systemctl status pulse-xmpp-agent-relay mmc-agent pulse-xmpp-master-substitute-assessor pulse2-package-server apache2 tomcat8 - Vérifier qu’aucune référence à l’ancienne IP ou à l’ancien FQDN ne subsiste :
grep -rE "192\.168\.1\.10|medulla\.ancien-domaine\.lan" /etc/mmc /etc/pulse-xmpp-agent* /etc/apache2 /etc/guacamole - Suivre la bascule des postes : le nombre de machines marquées
need_reconfdoit diminuer au fil des check-ins - Si
--update-agent-confa été utilisé : déployer les agents régénérés sur les postes - Si l’IP du serveur principal a changé : reconfigurer les serveurs relais (ARS) qui pointent vers lui
Limites
- Gestionnaire réseau : seul
/etc/network/interfacesest pris en charge. Avec Netplan ou NetworkManager, le script affiche un avertissement et la configuration réseau doit être modifiée manuellement (le reste de la reconfiguration Medulla est effectué). - Interface unique : le script applique la nouvelle adresse aux interfaces déclarées dans
/etc/network/interfaces. Sur un serveur à plusieurs interfaces, modifiez le réseau manuellement et utilisez le script sans--new-ip, ou contactez le support. - Assessor distant : si l’assessor est hébergé sur un autre serveur,
assessor_agent.ini.localn’est pas mis à jour. Sur ce serveur, remplacez l’IP (serverip) et le FQDN de l’URL Guacamole (guacamole_baseurl), puis redémarrezpulse-xmpp-master-substitute-assessor. L’exécution du script n’est pas interrompue.
Gestion des erreurs
En cas d’échec sur une étape critique, le script s’arrête immédiatement. Les échecs sur assessor_agent.ini.local, les fichiers des substituts et package-server.ini.local sont signalés sans interrompre l’exécution.
Important :
Le script n’effectue aucun rollback automatique. Les modifications déjà appliquées restent présentes. Corrigez le problème puis relancez le script avec les mêmes paramètres, ou restaurez la sauvegarde réalisée avant exécution.
Pour obtenir plus de détails sur une erreur, relancez avec --log-level debug.
Connexion à la base de données
Les paramètres de connexion sont lus dans la section [database] de /etc/mmc/plugins/xmppmaster.ini (et .local s’il existe).
| Paramètre | Valeur par défaut |
|---|---|
| Hôte SQL | localhost |
| Port SQL | 3306 |
| Utilisateur SQL | mmc |
| Mot de passe SQL | Aucune : doit être défini dans la configuration |