Génère un rapport Excel depuis l'API Aruba Central : inventaire des équipements, statut firmware des switches et des points d'accès (swarms), avec calcul automatique des versions maximales disponibles.
- Python 3.9+
- Accès API Aruba Central (client_id, client_secret, customer_id, etc.)
- Excel (pour ouvrir le fichier généré)
Installer les dépendances :
pip install pycentral requests pandas openpyxl python-dotenvLe script supporte plusieurs clients/sites avec des configurations isolées.
Créez un dossier .env dans Script Central/ :
Script Central/
└── .env/
├── Client1.env
├── Client2.env
└── Hermite.env
Chaque fichier .env représente un client et doit contenir les variables suivantes :
CLIENT_ID=votre_client_id
CLIENT_SECRET=votre_client_secret
CUSTOMER_ID=votre_customer_id
CENTRAL_USERNAME=votre_username
CENTRAL_PASSWORD=votre_password
BASE_URL=https://apigw-eucentral3.central.arubanetworks.comImportant : La BASE_URL varie selon la région de votre tenant Aruba Central :
https://apigw-eucentral3.central.arubanetworks.com(EU Central 3)https://eu-apigw.central.arubanetworks.com(EU)https://apigw-uswest.central.arubanetworks.com(US West)- etc.
Le nom du fichier (sans l'extension .env) sera utilisé comme nom du client dans le script.
Chaque client a son propre dossier de tokens pour éviter les conflits entre sites :
Script Central/
└── temp/
├── Client1/ ← Tokens pour Client1
│ └── tok_*.json
├── Client2/ ← Tokens pour Client2
│ └── tok_*.json
└── Hermite/ ← Tokens pour Hermite
└── tok_*.json
Avantages :
- Pas de conflit entre différents sites/clients
- Tokens persistants et réutilisés entre les exécutions
- Nettoyage simple : supprimez
temp/<nom_client>/pour forcer une nouvelle authentification
Le script définit automatiquement la variable d'environnement CENTRAL_TOKEN_DIR pour pointer vers le dossier du client sélectionné. Les modules utilisent automatiquement le bon token.
Exécuter le script principal :
python "Script Central/main.py"Le script vous demandera de sélectionner un client parmi ceux disponibles dans le dossier .env/.
Le script génère un rapport Excel avec les feuilles suivantes :
-
Firmware Consolidé (première feuille)
- Vue unifiée des switches et Virtual Controllers (VC)
- Colonnes : serial, mac_address, hostname, model, firmware_version, recommended, firmware_max
-
Inventaire
- Liste complète des équipements
-
Switches (Stack)
- Liste issue de l'endpoint
monitoring/v1/switches - Distinction des équipements en stack vs standalone grâce à
stack_status,stack_id,stack_role,stack_member_id
- Liste issue de l'endpoint
-
Firmware Switch
- Détails des switches (HP et CX)
- Calcul automatique de
firmware_maxpour les modèles 2930F (HP) et 6300 (CX)
-
Firmware Swarms
- Virtual Controllers (VC) et tous les points d'accès associés
- Calcul automatique de
firmware_maxpour les IAP dans la même branche de version
Le script calcule automatiquement la version maximale disponible (firmware_max) dans la même branche :
- IAP : Reste dans la même branche majeure/mineure (ex: 8.13.x.x pour 8.13.0.0)
- Switches 2930F : Versions HP disponibles
- Switches 6300 : Versions CX disponibles
Aruba-Central-API-Report/
├── Script Central/
│ ├── .env/ # Dossier de configuration des clients
│ │ ├── Client1.env
│ │ └── Client2.env
│ ├── temp/ # Tokens isolés par client
│ │ ├── Client1/
│ │ └── Client2/
│ ├── Report/ # Rapports Excel générés
│ │ ├── Client1.xlsx
│ │ └── Client2.xlsx
│ ├── main.py # Point d'entrée
│ ├── data_pipeline.py # Collecte et transformation des données
│ ├── excel_export.py # Génération du fichier Excel
│ ├── central_config.py # Chargement des configurations clients
│ ├── clients_config.py # Détection automatique des clients
│ ├── script_inventaire.py # Récupération de l'inventaire
│ ├── script_firmware_switch.py # Firmware des switches
│ ├── script_firmware_swarms.py # Firmware des swarms (VC + APs)
│ ├── script_firmware_versions.py # Récupération des versions disponibles
│ ├── script_list_switches.py # Liste des switches (stack/standalone)
│ ├── script_load_token.py # Chargement des tokens
│ └── excel_format.py # Formatage Excel
└── README.md
- Sécurité : Ne versionnez jamais vos fichiers
.envcontenant les identifiants - Tokens : Les tokens sont automatiquement isolés par client, pas besoin de les gérer manuellement
- Base URL : Vérifiez que la
BASE_URLdans chaque.envcorrespond à la région de votre tenant - Nettoyage : Supprimez
temp/<nom_client>/si vous rencontrez des problèmes d'authentification
Causes possibles :
- Le token a été généré avec une autre
BASE_URLque celle du client sélectionné - Le token a expiré
Solution :
- Supprimez le dossier
temp/<nom_client>/pour forcer la régénération du token - Vérifiez que la
BASE_URLdans le fichier.envcorrespond bien à votre tenant
Solution :
- Vérifiez que le dossier
Script Central/.env/existe - Ajoutez au moins un fichier
.envdans ce dossier (ex:Client1.env)
Solution :
- Vérifiez que chaque fichier
.envcontient bien la ligneBASE_URL=https://... - La
BASE_URLdoit correspondre à la région de votre tenant Aruba Central
Vérifications :
- Vérifiez les messages d'erreur dans la console
- Assurez-vous que votre compte Aruba Central a les permissions nécessaires
- Vérifiez que la
BASE_URLest correcte pour votre région
- Le SDK
ArubaCentralBasegère automatiquement l'authentification et le rafraîchissement des tokens - Les appels API directs utilisent la
BASE_URLdu client sélectionné pour garantir la cohérence - Les tokens sont stockés dans des dossiers séparés par client pour éviter les conflits
- Le script affiche la
BASE_URLutilisée et les endpoints appelés pour faciliter le débogage