Retour
Cartographie Mercator

Cartographie Mercator

Stage de 2ème année au Conseil Départemental de la Dordogne (CD24) — pipeline Python qui collecte la configuration de plusieurs Citrix NetScaler ADC (API NITRO) puis injecte automatiquement l'inventaire dans Mercator, l'outil de cartographie SI de l'ANSSI.

Description

Outil d'industrialisation de la cartographie SI développé pendant mon stage de 2e année au Conseil Départemental de la Dordogne (CD24), pour remplacer la maintenance manuelle de la cartographie réseau par un import automatique.

Le pipeline fonctionne en deux étapes orchestrées par un script Python unique :

  1. Collecte NITRO : pour chacune des appliances Citrix NetScaler ADC du parc (DMZ edge, DMZ gateway, DMZ qualif, production), authentification via l'API NITRO et parcours complet de la configuration : virtual servers de Load Balancing (lbvserver), services backend et leurs IPs/ports/états, virtual servers de Content Switching (csvserver), policies (cspolicy) et leurs actions (csaction) avec leurs lbvserver cibles. Les données sont normalisées en JSON par hôte.

  2. Import Mercator : authentification à l'API Mercator (Bearer token), récupération des inventaires existants pour dédoublonner, puis création/mise à jour des Logical Servers (un par IP backend), des Application Services (un par couple IP:port_protocole) et des Applications (une par lbvserver/csvserver). Les services sont automatiquement reliés à leur serveur logique. Gestion du rate-limit Mercator avec back-off automatique.

Résultat : une cartographie SI à jour en quelques minutes au lieu de plusieurs jours, exécutable périodiquement en cron pour suivre l'évolution de l'infrastructure.

Technologies utilisées

Python Citrix NetScaler NITRO API Mercator ANSSI REST JSON Automatisation

Compétences BTS SIO

B1 Gérer le patrimoine informatique
B1.1 Recenser et identifier les ressources numériques

Le projet a pour but explicite de recenser et identifier les ressources numériques : chaque appliance Citrix NetScaler ADC du parc est interrogée pour découvrir l'ensemble de ses virtual servers de load balancing, ses services backend, ses serveurs logiques et leurs IPs/ports, ainsi que la chaîne content switching (csvserver → cspolicy → csaction → lbvserver cible). Cette cartographie est ensuite consolidée dans Mercator.

B4 Travailler en mode projet
B4.1 Analyser les objectifs et les modalités d'organisation d'un projet

Le projet a démarré par une analyse du processus existant (cartographie maintenue à la main, sujette aux oublis et au décalage avec la réalité) et des objectifs de l'équipe DSI : industrialiser, garantir la fraîcheur des données, rester compatible avec Mercator. Cette analyse a défini le découpage en deux étapes (collecte puis import) et le périmètre fonctionnel (LB + CS).

B5 Mettre à disposition des utilisateurs un service informatique
B5.2 Déployer un service

Le service a été industrialisé pour un usage en production : configuration externalisée dans des fichiers .env, dépendances figées dans requirements.txt, orchestration via un script unique run.py exécutable périodiquement en cron. La cartographie peut désormais être rafraîchie automatiquement sans intervention manuelle.

Informations

Type Open Source
Repository GitHub