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 lela configuration réseau d’une instance Medulla : adresse IP, FQDN (nom DNS complet), d’unepasserelle, instanceserveurs Medulla.DNS et protocole (http / https).
ExempleExemples :
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 également :
- De
modifierchanger l’adresse IP, le masque, la passerelle et les serveurs DNS du serveur
http vers https Important :Avant d’exécuterSi le script,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 pointers’arrête vers votre serveur Medulla.sinon.
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
root
Le module Python mysql-connector (paquet mysql-connector-python) doit être installé
/etc/network/interfaces (voir Limites)
Changement d’IP : l’entrée pulse du fichier /etc/hosts contient 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 leSauvegarde 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/rename_fqdn_and_protocol.reconfigure_network.py
Le rendre exécutable :
chmod +x rename_fqdn_and_protocol.reconfigure_network.py
Afficher l’aide du script :
./rename_fqdn_and_protocol.reconfigure_network.py --help
ModifierDéroulement de l’exécution
pulse de /etc/hosts) et l’ancien FQDN (nom d’hôte du système, sauf si --old-fqdn est fourni).
Un avertissement s’affiche pendant 10 secondes : appuyez sur Ctrl+C pour 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 serveurnom 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
PourLa modifiernouvelle unadresse FQDNdoit existantêtre :
medulla.mondomaine.lanen →notation medulla.mondomaine.frCIDR Commande(adresse/préfixe). :Le masque est déduit du préfixe.
./rename_fqdn_and_protocol.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.mondomaine.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 :
/etc/ssl/certs/ (clé en droits 600)
L’activation des modules Apache ssl et headers
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 commandeoption met automatiquement à jour agentconf.ini et .generation_options, puis régénère les fichiersagents 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 configurationce Medulla,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 URLsagents Guacamole,ne lessont paramètrespas Apachemodifiés.
Reconfigurer uniquement le réseau
L’option --only-network modifie uniquement la configuration réseau et la/etc/hosts, basesans xmppmaster.toucher Le détail figure dansà la sectionconfiguration QueMedulla modifie:
./reconfigure_network.py le--only-network script\
?--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 URLconfiguration est ensuite transmise à chaque poste lors de son prochain check-in auprès du serveur Medulla..
Information :LeLa changement de FQDNpropagation n’est donc pas instantané côté clientsinstantanée : la propagationelle 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 pasnon 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 httpsLe 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.pemLe script réalise automatiquement :
Information :La clé privée n’étant pas chiffrée, restreignez ses droits avant exécution :
chmod 600 /root/privkey.pemRé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-confInformation :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 |
|---|
--old-fqdnnew-ip
10.0.0.50/24)
--new-fqdn
--old-fqdn
--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-protocolhttp ou https. Si absent, le protocole existant est conservé
--ssl-pem-chain-filename
--ssl-pem-key-filename--new-protocol https
--ssl-pem-key-filename
--ssl-pem-chain-filename--new-protocol https
--update-agent-conf
--ars
--only-network
Reconfigure uniquement le --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
--only-network)
xmppmaster.ini.local
security.ini.local
Identifiant serveur (cve_central)
Serveur principal
assessor_agent.ini.local
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 xmppmaster
relayserver machines : URL Guacamole etrelayserverneed_reconf
Serveur principal
Apache
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-confinstall-agent.ps1
--update-agent-confServices automatiquement redémarrés
Pendant l’exécution du script, les services suivants sont 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’IP
apache2
tomcat8 (Guacamole), en cas de changement d’IP
networking, en dernier, en cas de changement d’IP
Attention :
Une courte interruption de service peutest êtreà observéeprévoir pendant l’exécutionexécution. duPlanifiez script.l’opération en dehors des heures d’utilisation.
VérificationsAprès après l’exécution
L’Mettre à jour les enregistrements DNS (nouvelle IP et/ou nouveau FQDN)
systemctl status pulse-xmpp-agent-relay mmc-agent pulse-xmpp-master-substitute-assessor pulse2-package-server apache2 tomcat8
grep -rrE "medulla.192\.168\.1\.10|medulla\.ancien-domaine.domaine\.lan" /etc/mmc /etc/pulse-xmpp-agent* /etc/apache2 /etc/guacamole
Suivre la bascule des postes : le nombre de machines need_reconf doit diminuer au fil des check---update-agent-conf a é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
CasLimites
/etc/network/interfaces Siest 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é).
/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 /etc/pulse-xmpp-agent-substitute/assessor_agent.ini.local Dansn’est pas mis à jour. Sur ce cas, sur le serveur concerné,serveur, remplacez l’ancien FQDNIP (serverip) et le protocoleFQDN le cas échéant) dansde l’URL Guacamole de ce fichier,(guacamole_baseurl), puis redémarrez le service :
systemctl restart pulse-xmpp-master-substitute-assessor. Cet échec n’interrompt pas l’L’exécution du script :n’est lespas étapesinterrompue.
Gestion des erreurs
En cas d’échec,échec sur une étape critique, le script s’arrête immédiatementimmédiatement. (àLes échecs sur assessor_agent.ini.local, les fichiers des substituts et package-server.ini.local sont signalés sans interrompre l’exception du cas de l’assessor distant ci-dessus).exécution.
Important :
Le script n’effectue aucun rollback automatique.
Les modifications déjà appliquées restent présentes. Une foisCorrigez le problème corrigé,puis relancez le script peut être relancé sans risque :avec les opérationsmêmes sontparamètres, idempotentes, un remplacement déjà effectué est sans effet (les services concernés seront toutefois redémarrés à nouveau). En cas de besoin,ou restaurez la sauvegarde réalisée avant exécution.
Pour obtenir plus de détails sur une erreur, relancez avec --log-level debug.
ValeursConnexion parà défautla 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).
| Valeur par défaut | |
|---|---|
| Hôte SQL | localhost |
| Port SQL | 3306 |
| Utilisateur SQL | mmc |
| Mot de passe SQL | Aucune |
--update-agent-confInformation :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.