Este documento descreve o Programmable Installer, uma plataforma de automação orientada por especificações para implantar pilhas de software da Cisco, como NSO e CNC.
| Campo | Valor |
|---|---|
| Produto | Instalador programável |
| Tipo de documento | White paper técnico — arquitetura, implementação e resultados |
| Público principal | Arquitetos de soluções, engenheiros de plataforma, DevOps / SRE, líderes de entrega |
| Público secundário | Gerenciamento de engenharia, revisores de segurança, gerentes de programa |
O Programmable Installer é uma plataforma de automação orientada por especificações para implantar e operar pilhas de software da Cisco, incluindo Network Services Orchestrator (NSO), Crosswork Network Controller (CNC), Crosswork Data Gateway (CDG) e Business Process Automation (BPA), no Linux corporativo (família RHEL) e na infraestrutura associada onde aplicável (VMware vCenter, OpenShift, KVM, Kubernetes com isolamento de ar). O sistema separa a intenção declarativa (especificações YAML e geração de intenção guiada opcional) da execução (funções e manuais de atividades Ansible), com um plano de controle Python que empacota artefatos, verifica pacotes antes de instalações de longa execução, prepara segredos criptografados e orquestra portas de validação.
Este white paper explica as camadas de arquitetura, os fluxos de dados primários, os padrões de implementação (inclusive um modelo híbrido de verificação de artefatos orientados por dados), os modos de implantação (nativo, em contêineres, on-line, com isolamento de ar) e as estruturas de validação e registro. Para organizações de plataforma e fornecimento, a plataforma tem como objetivo reduzir o trabalho manual, a configuração incorreta da superfície e a ausência de binários no início, além de padronizar a automação em produtos e topologias, preservando a parametrização específica do ambiente.
Palavras-chave: automação de infraestrutura, implantação declarativa, Ansible, especificação YAML, embalagem de air-gap, verificação de artefatos, Crosswork, NSO, CNC, CDG, BPA, política de validação, DevOps.
| Função | Foco sugerido |
|---|---|
| Tomadores de decisão / leads | Resumo; §1 Proposta de valor; §8 Benefícios e postura de risco; §10 Conclusão |
| Arquitetos de soluções | §3-§6 (arquitetura, modelo de especificação, implementação, padrões de implantação) |
| DevOps / SRE / engenheiros de entrega | §5-§7; Apêndice B; anexos complementares do white paper interno |
| Revisores de segurança | §7 Procedimentos de segurança e conformidade; limites de confiança em §3.2 |
A instalação corporativa de produtos de automação e orquestração de rede de vários níveis é tradicionalmente de alto envolvimento: runbooks longos, muitos passos manuais, desvio de versão entre sites e falhas que trazem horas para dentro de um processo (ausência de NEDs, caminhos OVA errados, conjuntos de imagens de air-gap incompletos). Esse padrão aumenta os custos, alonga as janelas de mudança e torna as auditorias mais difíceis.
O instalador programável trata uma instalação como um programa parametrizado por uma especificação: topologia, versões, escolha de plataforma (vCenter vs OpenShift vs VMs baunilha), caminhos de arquivos e direitos. A automação é idempotente onde for possível, pode ser repetida entre clientes e recebe verificações para que "não está pronto" seja um resultado rápido e explícito antes da instalação do cluster ou do produto.
| Ator / sistema | Função |
|---|---|
| Engenheiro de entrega | Autora ou gera especificações, executa pacotes, prepara compartimentos, valida, orquestrador e Ansible |
| Host do instalador | Nó de controle do Linux (nativo ou contêiner) com Python, configuração Ansible, disco para artefatos |
| Infraestrutura de destino | VMs vCenter, OpenShift/KubeVirt ou vanilla por especificação |
| Fontes de artefato | Espelhos internos, layouts de qualificação, distribuição de software — específico para o ambiente |
| Sistemas downstream | Monitoramento, gerenciamento de mudanças, fluxos de trabalho JIRA opcionais |
| Camada | Responsabilidade |
|---|---|
| Especificação | Topologia, versões, plataformas, caminhos, direitos |
| Controle o plano | Pacote, verificação de pacote, auxiliares de compartimento, driver de validação, CLI do orquestrador |
| Plano de automação | Preparação do host, ciclo de vida do Kubernetes, instalação do produto e configuração de primeiro dia |
| Artefatos | Binários, imagens, gráficos, OVAs, tarballs |
| Produto / pacote |
|---|
| NSO |
| CNC |
| CDG |
| BPA |
| CNC + NSO |
As especificações são documentos YAML que descrevem plataformas (por exemplo, vCenter, OCP, VM, KVM ), hosts, aplicativos com versões, topologia (por exemplo, layouts NSO CFS/RFS), direitos (NEDs e pacotes complementares) e caminhos de arquivos para OVAs, imagens qcow2 e tarballs da camada de aplicativo.
Um aplicativo específico user_spec fornece padrões e fallbacks de caminho para CNC/CDG. O analisador do orquestrador trata a especificação do usuário como fonte de verdade e usa entradas de especificação comuns quando as chaves do usuário estão ausentes.
O gerador de intenção suporta a coleta guiada de requisitos por meio de um conjunto de questionários, um mecanismo de regras (lógica orientada por data) e mapeamento apoiado por esquema para intent.yaml.
O orquestrador é a única entrada para a coordenação de script ou de geração de intenção interativa, verificação de pacote e instalação. Seu design é explicitamente híbrido:
Preparação:AReportaggregates discovered artifacts; is_readyis true quando nenhum arquivo necessário está faltando após a análise das especificações. O módulo oferece suporte a binários congelados do PyInstaller via resolução de caminho sys.locked.
Este componente fornece menus interativos e modos CLI para empacotamento de artefatos e instalação de pré-requisitos de host: on-line, air-gap ou detecção automática; embalagem multiaplicação, incluindo combineCNC_NSO. Ele preenche a árvore de artefatos esperada pelo Ansible e pela lógica verify-bundle.
A estrutura oferece controle de política hierárquico (aplicativo de → global → etapa → verificação individual), descoberta automática de cheques, relatórios aprimorados para logs estruturados e integração JIRA opcional. Os operadores executam fases de pré ou pós-implantação com base na mesma especificação usada para a instalação, alinhando a automação com portões de qualidade adequados para a disciplina de alteração da empresa.
Escala indicativa em uma filial típica: na ordem de trinta verificações no BPA e no NSO (contagens a serem confirmadas comfazer verificações de validação de lista no seu check-out).
Deriva as variáveis de cofre necessárias de especificações, solicita ou aceita senhas sob política e emite group_vars/all_secrets.yaml criptografado mais um arquivo de senha de cofre para Ansible, reduzindo a incorporação de segredos ad-hoc nos manuais de atividades.
| Padrão | Summary |
|---|---|
| Nativo (AlmaLinux / RHEL) | Definir PYTHONPATH e ANSIBLE_CONFIG; execute empacotamento, cofre, validação, orquestrador e manuais de atividades por guia de produto |
| Instalador baseado em Docker | scripts/setup_installer.sh e scripts/start_installer.sh com montagens de host para artefatos grandes; |
| Air-gap | Embalagem em uma máquina conectada; pacote de transferência; Extrato no alvo; instalar com — airgap |
| criação de pacote macOS | Usepython3 ./setup_cxinstaller_prereqs.py no Mac para preparar pacotes; a implantação de destino permanece orientada para Linux por documentos de projeto |
Exemplo de chamada pré-implantação:
cd /opt/cx-installer
python3 validation_checks/run_validation_checks.py -t pre -s specification/your_spec.yaml
Com indicações facultativas:
Este é um modelo de aprovisionamento interno onde, para mais instalação de aplicativos da CISCO, o mesmo princípio pode ser seguido pela bifurcação do repositório.
| Tema | Resultado |
|---|---|
| Tempo e trabalho | Menos etapas manuais; falhas detectadas nas fases de verificação de pacotes e validação, em vez de serem detectadas tardiamente nos instaladores Ansible ou de produtos |
| Consistência | Esquemas, funções e layout de artefatos compartilhados em todos os engajamentos reduzem as diferenças "flocos de neve" |
| Operações desconectadas | A transferência de pacotes documentada suporta redes regulamentadas sem downloads em tempo de execução |
| Governança | Relatórios de validação estruturados e ganchos JIRA opcionais suportam registros de alteração e acompanhamento |
| Extensibilidade | Limpar pontos de extensão: ARTIFACT_DEFS, manipuladores, novas funções/manuais, esquemas de intenção |
As métricas quantitativas (duração da instalação, taxas de defeito) são específicas da organização; as equipes devem basear-se em runbooks legados em topologias comparáveis.
Preferem novas tarefas dentro de funções coesas; introduza novas funções quando os limites estiverem claros. Livros de reprodução com fios viaimport_playbook ou livros de jogos de entrada documentados. Mantenha padrões seguros em group_vars / vars.
Atualizar os esquemas YAML nas entradas underintent-generate/schema/ e chatbot; verifique se os arquivos gerados correspondem aos nomes de arquivo esperados por APP_CONFIG.
O CX Programmable Installer combina especificações declarativas, um plano de controle Python para empacotamento e verificação e um plano de automação Ansible para implantações escaláveis e repetíveis de produtos relacionados ao Crosswork em diversos modelos de infraestrutura e conectividade. Sua arquitetura intencionalmente separa a intenção da execução, aplica as expectativas de artefatos orientados por dados onde for prático e incorpora fluxos de trabalho de validação e compartimento adequados para entrega corporativa. Para obter os anexos operacionais completos (tabelas do manual de atividades, matrizes de solução de problemas, matrizes de conectividade e referências de comandos estendidos), consulte o white paper interno complementar.
| Documento | Caminho |
|---|---|
| Guia do operador | LEIAME.md |
| Liberar manual | RELEASE_GUIDE.md |
| Anexos da arquitetura interna | docs/CX_INSTALLER_TECHNICAL_WHITE_PAPER_INTERNAL.md |
| Docker (online / air-gap / uso) | SETUP_ONLINE_DOCKER.md, SETUP_AIRGAPPED_DOCKER.md, USAGE_DOCKER.md |
| Estrutura de validação | docs/validation_checks/README.md |
| Gerenciador de cofre | docs/scripts/VAULT_SECRETS_MANAGER.md |
| Guias de produtos | docs/nso.md, docs/bpa.md, docs/CNC_VCENTER_DEPLOYMENT_GUIDE.md, docs/CNC_OCP_DEPLOYMENT_GUIDE.md, docs/CNC_NSO_DEPLOYMENT_GUIDE.md |
| Gerador de intenção | intent-generator/README.md |
| Visão geral do Chatbot / fluxo de regras | 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
Pontos focais de artefato pós-configuração (típico):ansible_playbooks/files/artifacts/, files/bin/, files/charts/, files/images/.
Script:cx_deploy_orchestrator.py
| Argumento | Descrição |
|---|---|
| — app / - a | nso | crossworksuite | bpa |
| — spec / - s | Caminho para a especificação YAML |
| --etapa | generate-intent | verify-bundle | install |
| — verify- only | Verificar o pacote; sair diferente de zero se não estiver pronto |
| — dry- run | Execução a seco, quando suportado |
| — list- specs | Listar especificações conhecidas |
Ambiente (sessão típica):
export PYTHONPATH=$(pwd)
export ANSIBLE_CONFIG=$(pwd)/ansible_playbooks/ansible.cfg
| Termo | Definição |
|---|---|
| Espec. | Especificação de usuário YAML: plataformas, aplicativos, topologia, caminhos, direitos |
| Intenção | YAML normalizado do gerador de intenção ou equivalente de autoria manual |
| Pacote | Árvore de instalação empacotada (geralmente tarball) para transferência de ar-gap |
| Orquestrador | cx_deploy_orchestrator.py — coordenação de verificação / intenção / instalação |
| Verificação de artefatos | Verificações do sistema de arquivos que os binários/imagens necessários existem por especificação |
| Cofre | Arquivo de variável criptografado Ansible Vault para segredos |
| NED | Pacote de driver de elemento de rede (NSO) |
| CFS/RFS | Conceitos de topologia de encaminhador de cluster NSO / encaminhador redundante |
| Air-gap | Ambiente sem acesso em tempo de instalação a pontos de extremidade de download de pacotes |
| Versão | Data | Notas |
|---|---|---|
| 1.0 | 2026-03-27 | White paper técnico inicial pronto para publicação (Enquadramento do instalador programável) |
| Revisão | Data de publicação | Comentários |
|---|---|---|
2.0 |
28-Apr-2026
|
Versão inicial, formatação |
1.0 |
28-Apr-2026
|
Versão inicial |