Ce document décrit le programme d'installation programmable, une plate-forme d'automatisation pilotée par des spécifications pour le déploiement de piles logicielles Cisco telles que NSO et CNC.
| Champ | Valeur |
|---|---|
| Product (produit) | Installateur Programmable |
| Type de document | Livre blanc technique : architecture, mise en oeuvre et résultats |
| Public principal | Architectes de solutions, ingénieurs de plate-forme, DevOps / SRE, responsables de prestation |
| Public secondaire | Gestion de l'ingénierie, Réviseurs de sécurité, Responsables de programme |
Le programme d'installation programmable est une plate-forme d'automatisation pilotée par des spécifications pour le déploiement et l'exploitation de piles logicielles Cisco, y compris Network Services Orchestrator (NSO), Crosswork Network Controller (CNC), Crosswork Data Gateway (CDG) et Business Process Automation (BPA), sur Linux d'entreprise (gamme RHEL) et l'infrastructure associée le cas échéant (VMware vCenter, OpenShift, KVM, Kubernetes à entrefer). Le système sépare l'intention déclarative (spécifications YAML et génération facultative d'intention guidée) de l'exécution (rôles et guides Ansible), avec un plan de contrôle Python qui empaquette les artefacts, vérifie les paquets avant les installations à long terme, prépare les secrets chiffrés et orchestre les portes de validation.
Ce livre blanc explique les couches architecturales, les flux de données principaux, les modèles d'implémentation (y compris un modèle hybride de vérification d'artefact piloté par les données), les modes de déploiement (natif, en conteneur, en ligne, à vide) et les cadres de validation et de journalisation. Pour les organisations de livraison et de plate-forme, la plate-forme vise à réduire les tâches manuelles, la mauvaise configuration des surfaces et les binaires manquants au début, et à standardiser l'automatisation sur les produits et les topologies tout en préservant le paramétrage spécifique à l'environnement.
Mots-clés : automatisation de l'infrastructure, déploiement déclaratif, Ansible, spécification YAML, conditionnement de l'air-gap, vérification des artefacts, Crosswork, NSO, CNC, CDG, BPA, politique de validation, DevOps.
| Rôle | Thème suggéré |
|---|---|
| Décideurs/responsables | Résumé ; §1 Proposition de valeur ; §8 Avantages et position de risque ; §10 Conclusion |
| Architectes de solutions | §3-§6 (architecture, modèle de spécification, implémentation, modèles de déploiement) |
| DevOps / SRE / Ingénieurs de livraison | §5-§7 ; Appendice B ; annexes du livre blanc interne |
| Réviseurs de sécurité | §7 Position en matière de sécurité et de conformité ; limites de confiance dans §3.2 |
L'installation en entreprise de produits d'orchestration et d'automatisation de réseau multiniveau est traditionnellement très exigeante : de longs runbooks, de nombreuses étapes manuelles, une différence de version entre les sites et des pannes qui surviennent pendant des heures dans un processus (NED manquants, chemins OVA incorrects, ensembles d'images d'entrefer incomplets). Ce modèle augmente les coûts, allonge les fenêtres de modification et rend les audits plus difficiles.
L'installateur programmable traite une installation comme un programme paramétré par une spécification : topologie, versions, choix de plate-forme (vCenter ou OpenShift ou machines virtuelles classiques), chemins d'accès aux fichiers et droits. Dans la mesure du possible, l'automatisation est omnipotente, reproductible chez les clients et soumise à des contrôles préalables, de sorte que le terme « non prêt » soit un résultat rapide et explicite avant l'installation du cluster ou du produit.
| Acteur/système | Rôle |
|---|---|
| Ingénieur de livraison | Rédige ou génère des spécifications, exécute le packaging, la préparation du coffre-fort, la validation, l'orchestrateur et Ansible |
| Hôte du programme | Noeud de contrôle Linux (natif ou conteneur) avec Python, configuration Ansible, disque pour les artefacts |
| Infrastructure cible | VM vCenter, OpenShift/KubeVirt ou vanilla selon les spécifications |
| Sources Artifact | Miroirs internes, dispositions de droits, distribution de logiciels - spécifiques à l'environnement |
| Systèmes en aval | Surveillance, gestion des changements, workflows JIRA en option |
| Couche | Responsabilité |
|---|---|
| Spécification | Topologie, versions, plates-formes, chemins, droits |
| Plan de contrôle | Emballage, vérification des offres groupées, assistants de stockage en chambre forte, pilote de validation, CLI d'orchestrateur |
| Plan Automation | Préparation de l'hôte, cycle de vie Kubernetes, installation du produit et configuration au premier jour |
| Artefacts | Binaires, images, graphiques, OVA, tarballs |
| Produit/offre groupée |
|---|
| NSO |
| CNC |
| CDG |
| BPA |
| CNC + NSO |
Les spécifications sont des documents YAML décrivant les plates-formes (par exemple vCenter, OCP, VM, KVM ), les hôtes, les applications avec des versions, la topologie (par exemple les dispositions NSO CFS/RFS), les droits (NED et modules complémentaires) et les chemins d'accès aux fichiers pour les OVA, les images qcow2 et les archives de couche application.
Une application spécifique user_spec fournit des valeurs par défaut et des chemins de secours pour CNC/CDG. L'analyseur syntaxique de l'orchestrateur traite la spécification utilisateur comme une source de vérité et utilise les entrées de spécification communes lorsque les clés utilisateur sont absentes.
Le générateur d'intention prend en charge la collecte guidée des exigences via un ensemble de questionnaires, un moteur de règles (logique pilotée par la date) et mappage basé sur un schéma vers intent.yaml.
L'orchestrateur est l'entrée unique pour la coordination de génération d'intention, de vérification d'offre groupée et d'installation scriptée ou interactive. Sa conception est explicitement hybride :
Readiness:AReportaggregates a découvert des artefacts ; is_ready est vrai lorsqu'aucun fichier requis n'est manquant après l'analyse des spécifications. Le module prend en charge les binaires figés PyInstaller via la résolution de chemin sys.gelé.
Ce composant fournit des menus interactifs et des modes CLI pour l'empaquetage des artefacts et l'installation préalable de l'hôte : en ligne, à air-gap ou à détection automatique ; emballage multi-applications incluant combineCNC_NSO. Il remplit l'arborescence d'artefacts attendue par Ansible et par la logique verify-bundle.
L'infrastructure fournit un contrôle hiérarchique des politiques (global → app → stage → contrôle individuel), la détection automatique des contrôles, des rapports améliorés vers les journaux structurés et l'intégration JIRA facultative. Les opérateurs exécutent des phases de prédéploiement ou de post-déploiement selon les mêmes spécifications que celles utilisées pour l'installation, en alignant l'automatisation sur des critères de qualité adaptés à la discipline de changement de l'entreprise.
Échelle indicative sur une succursale type : de l'ordre de trente contrôles sur BPA et NSO (comptes à confirmer avec make list-validation-checkout).
Dérive les variables de coffre-fort requises des spécifications, invite ou accepte les mots de passe dans le cadre de la stratégie, et émet des group_vars/all_secrets.yaml chiffrés ainsi qu'un fichier de mot de passe de coffre-fort pour Ansible, réduisant ainsi l'intégration de secrets ad hoc dans les guides.
| Modèle | Résumé |
|---|---|
| Native (AlmaLinux / RHEL) | Définissez PYTHONPATH et ANSIBLE_CONFIG ; exécuter le packaging, le coffre-fort, la validation, l'orchestrateur et les guides par guide produit |
| Installer basé sur Docker | scripts/setup_installer.sh et scripts/start_installer.sh avec montures d'hôtes pour les artefacts volumineux ; |
| Espace d'air | Emballage sur une machine connectée ; offre groupée de transfert ; extrait sur la cible ; installer avec—airgap |
| création d'offres groupées macOS | Utilisez ython3 ./setup_cxinstaller_prereqs.py sur Mac pour préparer des bundles ; Le déploiement cible reste orienté Linux par projet |
Exemple d'appel préalable au déploiement :
cd /opt/cx-installer
python3 validation_checks/run_validation_checks.py -t pre -s specification/your_spec.yaml
Avec des indicateurs facultatifs :
Il s'agit d'un modèle d'approvisionnement interne dans lequel, pour une installation plus poussée des applications CISCO, le même principe peut être suivi par le transfert du référentiel.
| Thème | Résultat |
|---|---|
| Temps et labeur | Moins d'étapes manuelles ; défaillances détectées lors des phases de vérification du bundle et de validation plutôt qu'à un moment tardif dans Ansible ou les installateurs de produits |
| Cohérence | Les schémas, les rôles et la disposition des artefacts partagés entre les missions réduisent les différences de « flocons de neige » |
| Opérations déconnectées | Transfert de bundle documenté prenant en charge les réseaux réglementés sans téléchargements d'exécution |
| Gouvernance | Les rapports de validation structurés et les hooks JIRA facultatifs prennent en charge les enregistrements des modifications et le suivi |
| Extensibilité | Effacer les points d'extension : ARTIFACT_DEFS, gestionnaires, nouveaux rôles/guides, schémas d'intention |
Les mesures quantitatives (durée d'installation, taux de défauts) sont propres à l'organisation ; les équipes doivent établir une référence par rapport aux runbooks existants sur des topologies comparables.
Préfèrent les nouvelles tâches dans des rôles cohérents ; introduisez de nouveaux rôles lorsque les limites sont claires. Classeurs filaires viaimport_playbook ou des guides documentés d'entrée. Conservez les valeurs par défaut sûres dans group_vars / vars.
Mettre à jour les schémas YAML sous-intention-générateur/schéma/ et les entrées de chatbot ; assurez-vous que les fichiers générés correspondent aux noms de fichiers attendus par APP_CONFIG.
Le programme d'installation programmable CX combine des spécifications déclaratives, un plan de contrôle Python pour l'emballage et la vérification, et un plan d'automatisation Ansible pour les déploiements évolutifs et reproductibles de produits liés aux réseaux croisés sur divers modèles d'infrastructure et de connectivité. Son architecture sépare intentionnellement l'intention de l'exécution, applique les attentes d'artefact basées sur les données lorsque cela est pratique, et intègre des workflows de validation et de stockage en chambre forte adaptés à la livraison d'entreprise. Pour obtenir des annexes opérationnelles complètes (tables de lecture, matrices de dépannage, matrices de connectivité et références de commandes étendues), reportez-vous au livre blanc interne.
| Documenter | Chemin |
|---|---|
| Guide de l'opérateur | README.md |
| Libérer le guide | GUIDE_VERSION.md |
| Annexes d'architecture interne | docs/CX_INSTALLER_TECHNICAL_WHITE_PAPER_INTERNAL.md |
| Docker (en ligne / air-gap / utilisation) | SETUP_ONLINE_DOCKER.md, SETUP_AIRGAPPED_DOCKER.md, USAGE_DOCKER.md |
| Cadre de validation | docs/validation_checks/README.md |
| Gestionnaire de coffre-fort | docs/scripts/VAULT_SECRETS_MANAGER.md |
| Guides des produits | docs/nso.md, docs/bpa.md, docs/CNC_VCENTER_DEPLOYMENT_GUIDE.md, docs/CNC_OCP_DEPLOYMENT_GUIDE.md, docs/CNC_NSO_DEPLOYMENT_GUIDE.md |
| Générateur d'intention | intent-generator/README.md |
| Présentation du chatbot/flux de règles | docs/HowItWorks.md |
cx-installer/
├── ansible_playbooks/ # ansible.cfg, files/, group_vars/, playbooks/, roles/, vars/
├── apps/ # App-specific supporting content
├── deploy/ # Python deploy helpers, logging utilities
├── docs/ # Technical documentation
├── intent-generator/ # Chatbot, rule engine, schemas, output/
├── scripts/ # Docker setup/start, vault_secrets_manager.py, ...
├── specification/ # User specs, samples, common fragments
├── validation_checks/ # Policies, runners, reports
├── cx_deploy_orchestrator.py
├── setup_cxinstaller_prereqs*
├── requirements.txt
└── README.md
Points focaux des artefacts post-configuration (standard) : ansible_playbooks/files/artifacts/, files/bin/, files/charts/, files/images/.
Script : cx_deploy_orchestrator.py
| Argument | Description |
|---|---|
| —app / -a | nso | crossworksuite | bpa |
| —spec / -s | Chemin vers la spécification YAML |
| : étape | generate-intent | verify-bundle | install |
| —verify-only | Vérifier le bundle ; sortie non nulle si non prête |
| —parcours à sec | Essai à sec si pris en charge |
| —list-specs | Répertorier les spécifications connues |
Environnement (session type) :
export PYTHONPATH=$(pwd)
export ANSIBLE_CONFIG=$(pwd)/ansible_playbooks/ansible.cfg
| Terme | Définition |
|---|---|
| Spécification | Spécification utilisateur YAML : plates-formes, applications, topologie, chemins, droits |
| Intention | YAML normalisé à partir du générateur d'intention ou équivalent manuscrit |
| Offre Groupée | Arbre d'installation fourni (souvent tarball) pour le transfert d'air-gap |
| Orchestrator | cx_deploy_orchestrator.py — vérification / intention / coordination de l'installation |
| Vérification des artefacts | Le système de fichiers vérifie que les fichiers binaires/images requis existent par spécification |
| Voûte | Fichier variable chiffré Ansible Vault pour les secrets |
| EXTRÉMITÉ | Module NSO (Network Element Driver) |
| CFS/RFS | Concepts de topologie de redirecteur de cluster NSO / redirecteur redondant |
| Espace d'air | Environnement sans accès au moment du programme d'installation aux terminaux de téléchargement de package |
| Version | Date | Remarques |
|---|---|---|
| 1.0 | 2026-03-27 | Livre blanc technique prêt pour la publication initiale (encadrement du programme d'installation programmable) |
| Révision | Date de publication | Commentaires |
|---|---|---|
2.0 |
28-Apr-2026
|
Version initiale, formatage |
1.0 |
28-Apr-2026
|
Première publication |