Dit document beschrijft het Programmable Installer, een specifiek automatiseringsplatform voor het implementeren van Cisco-softwarestacks zoals NSO en CNC.
| Veld | Waarde |
|---|---|
| Product | programmeerbaar installatieprogramma |
| Documenttype | Technisch witboek — architectuur, implementatie en resultaten |
| Primair publiek | Oplossingsarchitecten, platformtechnici, DevOps / SRE, leveringsleads |
| Secundair publiek | Engineering management, Security reviewers, Program managers |
Het programmeerbare installatieprogramma is een specifiek automatiseringsplatform voor de implementatie en exploitatie van Cisco-softwarestacks, waaronder Network Services Orchestrator (NSO), Crosswork Network Controller (CNC), Crosswork Data Gateway (CDG) en Business Process Automation (BPA), op Enterprise Linux (RHEL-familie) en bijbehorende infrastructuur waar van toepassing (VMware vCenter, OpenShift, KVM, air-gapped Kubernetes). Het systeem scheidt declaratieve intentie (YAML-specificaties en optionele geleide intentiegeneratie) van uitvoering (Ansible-rollen en playbooks), met een Python-besturingsvlak dat artefacten verpakt, bundels verifieert voordat langlopende installaties worden geïnstalleerd, gecodeerde geheimen voorbereidt en validatiepoorten orkestreert.
In deze whitepaper worden de architectuurlagen, primaire gegevensstromen, implementatiepatronen (waaronder een hybride, gegevensgestuurd verificatiemodel voor artefacten), implementatiemodi (native, gecontaineriseerd, online, air-gapped) en de kaders voor validatie en registratie toegelicht. Voor leverings- en platformorganisaties heeft het platform als doel handmatige arbeid, verkeerde configuratie van oppervlakken en ontbrekende binaries vroegtijdig te verminderen en automatisering voor verschillende producten en topologieën te standaardiseren met behoud van omgevingsspecifieke parameterisatie.
Trefwoorden: infrastructuurautomatisering, declaratieve implementatie, Ansible, YAML-specificatie, air-gap-verpakking, artefactverificatie, kruiswerk, NSO, CNC, CDG, BPA, validatiebeleid, DevOps.
| rol | Aanbevolen focus |
|---|---|
| Besluitvormers / leads | Abstract; §1 Waardevoorstel; §8 Voordelen en risicohouding; §10 Conclusie |
| Oplossingsarchitecten | §3–§6 (architectuur, specificatiemodel, implementatie, implementatiepatronen) |
| DevOps / SRE / delivery engineers | §5–§7; Aanhangsel B; interne bijlagen van het begeleidende witboek |
| Beveiligingscontroleurs | §7 Beveiliging en compliance houding; vertrouwensgrenzen in §3.2 |
De bedrijfsinstallatie van multi-tier netwerkautomatiserings- en orkestratieproducten is van oudsher high-touch: lange runbooks, veel handmatige stappen, versiescheefheid tussen sites en fouten die uren in een proces opduiken (ontbrekende NED's, verkeerde OVA-paden, onvolledige air-gap-beeldsets). Dat patroon verhoogt de kosten, verlengt wijzigingsvensters en maakt audits moeilijker.
De programmeerbare installateur behandelt een installatie als een programma dat wordt geparametriseerd door een specificatie: topologie, versies, platformkeuze (vCenter vs OpenShift vs vanilla VM's), bestandspaden en rechten. Automatisering is idempotent waar mogelijk, herhaalbaar voor alle klanten en vooraf geladen met controles, zodat 'niet klaar' een snel, expliciet resultaat is voordat cluster of product wordt geïnstalleerd.
| Actor/systeem | rol |
|---|---|
| Leveringsingenieur | Auteurs of genereert specs, voert verpakkingen, voorbereiding kluis, validatie, orchestrator en Ansible |
| Installer-host | Linux control node (native of container) met Python, Ansible-configuratie, schijf voor artefacten |
| Doelinfrastructuur | vCenter-, OpenShift/KubeVirt- of vanilla-VM's per specificatie |
| Artefactbronnen | Interne spiegels, rechtenlay-outs, softwaredistributie—omgevingsspecifiek |
| Downstreamsystemen | Monitoring, wijzigingsbeheer, optionele JIRA-workflows |
| laag | verantwoordelijkheid |
|---|---|
| specificatie | Topologie, versies, platforms, paden, rechten |
| Besturingsplane | Verpakking, bundelverificatie, kluishelpers, validatiestuurprogramma, orchestrator-CLI |
| Automatiseringsvlak | Host prep, Kubernetes-levenscyclus, productinstallatie en configuratie op dag één |
| kunstvoorwerpen | Binaries, afbeeldingen, grafieken, OVA's, tarballs |
| Product / bundel |
|---|
| NSO |
| CNC |
| CDG |
| BPA |
| CNC + NSO |
Specificaties zijn YAML-documenten die platforms beschrijven (bijvoorbeeld vCenter, OCP, VM, KVM ), hosts, toepassingen met versies, topologie (bijvoorbeeld NSO CFS/RFS-lay-outs), rechten (NED's en add-on-pakketten) en bestandspaden voor OVA's, qcow2-afbeeldingen en tarballs op toepassingsniveau.
Een specifieke user_spec-toepassing levert standaardwaarden en padterugvalmogelijkheden voor CNC/CDG. De parser van de orchestrator behandelt de gebruikersspecificatie als bron van waarheid en gebruikt gemeenschappelijke spec-vermeldingen wanneer gebruikerstoetsen afwezig zijn.
De intentiegenerator ondersteunt het gericht verzamelen van vereisten via een set vragenlijsten, een regelengine (datumgestuurde logica), en schema-backed mapping naar intent.yaml.
De orchestrator is de enige ingang voor scripted of interactieve genereren-intentie, verifiëren-bundel, en de coördinatie te installeren. Het ontwerp is expliciet hybride:
Gereedheid: AReportaaggregeert ontdekte artefacten; is_ready is true wanneer er geen vereiste bestanden ontbreken na het parseren van de specificaties. De module ondersteunt door PyInstaller bevroren binaries via sys.frozen path resolution.
Deze component biedt interactieve menu's en CLI-modi voor artefactverpakking en installatie van hostvereisten: online, air-gap of automatisch detecteren; verpakking voor meerdere toepassingen inclusief gecombineerde CNC_NSO. Het bevolkt de artefactboom die door Ansible wordt verwacht en door verificatie-bundellogica.
Het framework biedt hiërarchische beleidscontrole (globale → app → fase → individuele controle), automatische detectie van controles, verbeterde rapportage aan gestructureerde logs en optionele JIRA-integratie. Exploitanten voeren pre- of post-implementatiefasen uit met dezelfde specificatie die wordt gebruikt voor installatie, waarbij automatisering wordt afgestemd op kwaliteitspoorten die geschikt zijn voor bedrijfsveranderingsdiscipline.
Indicatieve schaal op een typische tak: in de orde van dertig controles over BPA en NSO (tellingen worden bevestigd met make-list-validatie-controles bij uw kassa).
Hiermee worden de vereiste vaultvariabelen afgeleid van specificaties, worden wachtwoorden gevraagd of geaccepteerd onder het beleid en wordt gecodeerde group_vars/all_secrets.yaml plus een vaultwachtwoordbestand voor Ansible uitgezonden, waardoor ad-hocgeheime insluiting in afspeelboeken wordt verminderd.
| Patroon | Samenvatting |
|---|---|
| Standaard (AlmaLinux / RHEL) | PYTHONPATH en ANSIBLE_CONFIG instellen; verpakking, kluis, validatie, orkestrator en afspeelboeken uitvoeren per productgids |
| Docker-gebaseerd installatieprogramma | scripts/setup_installer.sh en scripts/start_installer.sh met hostbevestigingen voor grote artefacten; |
| Luchtspleet | Pakket op een verbonden machine; transferbundel; uitpakken op doel; installeren met-airgap |
| macOS-bundelcreatie | Gebruik sepython3 ./setup_cxinstaller_prereqs.py op Mac om bundels voor te bereiden; doelimplementatie blijft Linux-georiënteerd per project docs |
Voorbeeld aanroeping vóór implementatie:
cd /opt/cx-installer
python3 validation_checks/run_validation_checks.py -t pre -s specification/your_spec.yaml
Met optionele vlaggen:
Dit is een model voor inner sourcing waarbij voor meer CISCO applicatie-installatie hetzelfde principe kan worden gevolgd door het forken van de repository.
| thema | uitkomst |
|---|---|
| Tijd en zwoegen | Minder handmatige stappen; fouten gedetecteerd in verificatie-bundel- en validatiefasen in plaats van te laat in Ansible of product installateurs |
| consistentie | Gedeelde schema's, rollen en artefactlay-out voor alle opdrachten verminderen verschillen in "sneeuwvlok" |
| Niet-verbonden bewerkingen | Gedocumenteerde bundeloverdracht ondersteunt gereguleerde netwerken zonder runtime-downloads |
| bestuur | Gestructureerde validatierapporten en optionele JIRA-aansluitingen ondersteunen wijzigingsrecords en follow-up |
| uitbreidbaarheid | Uitbreidingspunten wissen: ARTIFACT_DEFS, handlers, nieuwe rollen/playbooks, intentieschema's |
Kwantitatieve statistieken (installatieduur, defectpercentages) zijn organisatiespecifiek; teams moeten baselinewaarden vergelijken met bestaande runbooks over vergelijkbare topologieën.
Geef de voorkeur aan nieuwe taken binnen samenhangende rollen; introduceer nieuwe rollen wanneer grenzen duidelijk zijn. Draad playbooks via import_playbook of gedocumenteerde entry playbooks. Bewaar veilige standaardinstellingen in group_vars / vars.
Update YAML schema's underintent-generator / schema / en chatbot-ingangen; zorg ervoor dat gegenereerde bestanden overeenkomen met bestandsnamen die worden verwacht door APP_CONFIG.
De CX Programmable Installer combineert declaratieve specificaties, een Python-besturingsvlak voor verpakking en verificatie en een Ansible-automatiseringsvlak voor schaalbare, herhaalbare implementaties van Crosswork-gerelateerde producten in verschillende infrastructuur- en connectiviteitsmodellen. De architectuur scheidt opzettelijk intentie van uitvoering, past datagestuurde artefactverwachtingen toe waar praktisch en integreert validatie- en vaultworkflows die geschikt zijn voor zakelijke levering. Zie de bijbehorende interne whitepaper voor volledige operationele bijlagen (afspeelboektabellen, matrices voor probleemoplossing, connectiviteitsmatrices en uitgebreide opdrachtverwijzingen).
| document | Pad |
|---|---|
| Handleiding voor de operator | README.md |
| Afspeelboek vrijgeven | RELEASE_GUIDE.md |
| Interne architectuur bijlagen | docs/CX_INSTALLER_TECHNICAL_WHITE_PAPER_INTERNAL.md |
| Docker (online / air-gap / gebruik) | SETUP_ONLINE_DOCKER.md, SETUP_AIRGAPPED_DOCKER.md, USAGE_DOCKER.md |
| Valideringskader | docs/validation_checks/README.md |
| Vaultbeheer | docs/scripts/VAULT_SECRETS_MANAGER.md |
| Productgidsen | docs/nso.md, docs/bpa.md, docs/CNC_VCENTER_DEPLOYMENT_GUIDE.md, docs/CNC_OCP_DEPLOYMENT_GUIDE.md, docs/CNC_NSO_DEPLOYMENT_GUIDE.md |
| Intentiegenerator | intent-generator/README.md |
| Chatbot / regelstroomoverzicht | 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
Post-setup artefact focal points (typisch): ansible_playbooks/files/artefacts/, files/bin/, files/charts/, files/images/.
Script:cx_deploy_orchestrator.py
| woordenstrijd | Beschrijving |
|---|---|
| --app / -a | NSO | CrossWorkSuite | BPA |
| --spec / -s | Pad naar YAML-specificatie |
| stap-voor-stap | Generatie-intentie | Verify-Bundle | Installeren |
| --Alleen verifiëren | Bundel controleren; niet-nul afsluiten als u niet klaar bent |
| --dry-run | Testrun waar ondersteund |
| --list-specs | Bekende specificaties opnoemen |
Omgeving (typische sessie):
export PYTHONPATH=$(pwd)
export ANSIBLE_CONFIG=$(pwd)/ansible_playbooks/ansible.cfg
| Begrip | Definitie |
|---|---|
| specificatie | YAML-gebruikersspecificatie: platforms, apps, topologie, paden, rechten |
| bedoeling | Genormaliseerde YAML van de intentiegenerator of het met de hand geschreven equivalent |
| bundel | Verpakte installateur boom (vaak tarball) voor air-gap overdracht |
| orkestrator | cx_deploy_orchestrator.py — Coördinatie controleren / plannen / installeren |
| Artefactverificatie | Bestandssysteem controleert of de vereiste binaries/images bestaan per specificatie |
| gewelf | Ansible Vault-gecodeerd variabel bestand voor geheimen |
| NED | Network Element Driver Package (NSO) |
| CFS / RFS | NSO-clusterforwarder/redundante forwarder-topologieconcepten |
| Luchtspleet | Omgeving zonder installateur-time toegang tot eindpunten voor pakketdownload |
| Versie | datum | Opmerkingen |
|---|---|---|
| 1.0 | 2026-03-27 | Initiële publicatie-ready technische whitepaper (programmeerbare framing van installateurs) |
| Revisie | Publicatiedatum | Opmerkingen |
|---|---|---|
2.0 |
28-Apr-2026
|
Eerste release, opmaak |
1.0 |
28-Apr-2026
|
Eerste vrijgave |