Skip to main content

Migrer un agent Medulla vers une nouvelle infrastructure

S'applique à : Medulla – Agent
Version : Toutes versions
Environnement : On-Premise
Catégorie : Agent Medulla / Migration

Lorsqu'un agent Medulla doit être basculé d'une infrastructure vers une autre (par exemple lors d'une migration d'infra ou d'un changement de serveur), deux  éléments doivent être mis à jour sur le poste : le contexte TLS (CA publiques de la nouvelle infra) et la configuration XMPP (`agentconf.ini`).

Prérequis : 
- Le script migrate_client_to_newserver.py automatise ces deux opérations ainsi que les vérifications associées.
Pour le récupérer, allez sur l'URL : https://dl.medulla-tech.io/up/migrate_client_to_newserver.py
- Le fichier de configuration de votre nouvelle infrastructure : agentconf.ini
Pour le récupérer, allez sur le serveur et récupérez-le dans : 
/var/lib/pulse2/clients/config/agentconf.ini
Lancement du script de migration :

Le script s'exécute en root (ou via `sudo`) et nécessite le fichier agentconf.ini de l'infrastructure cible, fourni par l'installateur/infra — il n'est jamais généré par le script.

Exemple à blanc poste Linux (aucune modification réelle) :

sudo python3 migrate_client_to_newserver.py \
        --old-fqdn agent-old.example.com \
        --new-fqdn int.medulla-tech.io \
        --xmpp-config /root/agentconf-int.ini \
        --dry-run

Exemple d'exécution réelle poste Linux:   

 sudo python3 migrate_client_to_newserver.py \
        --old-fqdn agent-old.example.com \
        --new-fqdn int.medulla-tech.io \
        --xmpp-config /root/agentconf-int.ini \
        --start-configurator --yes

Exemple à blanc poste Windows (aucune modification réelle) : 

Ouvrir un invite cmd en administrateur, vérifier que le script et le fichier agentconf.ini sont au meme endroit et taper les commandes suivantes : 

migrate_client_to_newserver.py --old-fqdn agent-old.example.com --new-fqdn fqdn.medulla-tech.io --xmpp-config /path/agentconf.ini --dry-run

Exemple d'exécution réelle poste Windows: 

migrate_client_to_newserver.py --old-fqdn agent-old.example.com --new-fqdn fqdn.medulla-tech.io --xmpp-config /path/agentconf.ini --start-configurator --yes --force
Que fait le script ?

- Télécharge et vérifie (openssl) la CA racine et la CA intermédiaire publiques de l'infra cible.
- Installe ces CA dans le magasin de confiance adapté à l'OS (Linux, macOS, Windows).
- Sauvegarde l'ancienne configuration XMPP puis installe le nouveau fichier agentconf.ini fourni.
- Teste la connexion STARTTLS vers le nouveau serveur XMPP avant de démarrer quoi que ce soit.

Étape finale obligatoire : redémarrer l'agent

Une fois le script terminé avec succès, la bascule n'est pas encore opérationnelle tant que le service agent n'a pas été redémarré. Il faut donc systématiquement lancer, sur le poste migré :

systemctl restart pulse-xmpp-agent.service

Sans ce redémarrage, l'agent continue de tourner avec l'ancienne session XMPP en mémoire et ne prendra pas en compte la nouvelle configuration tant que le service n'est pas relancé.

Sécurité

Le script ne génère ni n'affiche jamais confpassword ou keyAES32, ne copie jamais les clés hôte OpenSSH d'une autre machine, et ne touche jamais à une clé privée TLS. La nouvelle configuration XMPP doit toujours provenir de l'installateur/infra cible, jamais être recopiée telle quelle depuis l'ancienne machine.

Lancement du script de migration via Medulla:

Aller dans l'onglet Packages. Cliquer sur « Ajouter un nouveau package » : 

Uploader le script et le fichier de l'infrastructure cible en cliquant sur « Transmettre les fichiers en attente » :

image.png

Remplissez les champs Nom et version. 

Dans la partie de l'écran Plan de déploiement :

supprimez le script dans la partie droite Flux de déploiement.

image.png

Dans la partie gauche Actions disponibles, sélectionner et passer en glisser-déposer l'action Exécuter une commande .

image.png

Dans la commande, tapez le contenu suivant : 

Exemple à blanc poste Linux (aucune modification réelle) : 

sudo python3 migrate_client_to_newserver.py --old-fqdn agent-old.example.com --new-fqdn int.medulla-tech.io --xmpp-config /root/agentconf-int.ini  --dry-run

Exemple d'exécution réelle poste Linux: 

sudo python3 migrate_client_to_newserver.py --old-fqdn agent-old.example.com --new-fqdn int.medulla-tech.io --xmpp-config /root/agentconf-int.ini  --start-configurator --yes

Exemple à blanc poste Windows (aucune modification réelle) : 

migrate_client_to_newserver.py --old-fqdn agent-old.example.com --new-fqdn fqdn.medulla-tech.io --xmpp-config agentconf.ini --dry-run

Exemple d'exécution réelle poste Windows: 

migrate_client_to_newserver.py --old-fqdn agent-old.example.com --new-fqdn fqdn.medulla-tech.io --xmpp-config agentconf.ini --start-configurator --yes --force

Exemple de commande dans le package Medulla : 

image.png

Cliquer sur Valider.

Aller sur la machine ou le groupe de machines que vous voulez migrer et lancer l'exécution du package.

Votre package va copier les fichiers, puis exécuter le script avec les paramètres et ensuite redémarrer l'agent.

Dans l'ancienne infra Medulla, celle où vous avez lancé le package, votre machine sera vue offline et, au bout de quelques minutes, votre machine apparaîtra dans la nouvelle infra Medulla

Si vous migrez d'une infrastructure plus ancienne que la nouvelle, il faut prendre en compte le temps d'installation des nouveaux plugins, etc., ce qui peut rallonger le temps avant que votre machine soit opérationnelle.