| 欄位 | 價值 |
|---|---|
| 產品 | 可程式設計安裝程式 |
| 檔案型別 | 技術白皮書 — 架構、實施和成果 |
| 主要受眾 | 解決方案架構師、平台工程師、DevOps/SRE、交付主管 |
| 次級受眾 | 工程管理、安全審查員、專案經理 |
Programmable Installer是一個規範驅動的自動化平台,用於在企業Linux(RHEL系列)和相關基礎設施(VMware vCenter、OpenShift、KVM、空隙式Kubernetes)上部署和操作思科軟體堆疊(包括網路服務協調器(NSO)、Crosswork網路控制器(CNC)、Crosswork資料網關(CDG)和業務流程自動化(BPA))。 該系統將宣告性意圖(YAML規範和可選的指導性意圖生成)與執行(Ansible角色和行動手冊)分離,並使用Python控制平面打包對象、在長時間運行安裝之前驗證捆綁包、準備加密的秘密以及協調驗證閘道。
本白皮書將介紹架構層、主資料流、實施模式(包括混合資料驅動的工件驗證模型)、部署模式(本地、容器化、聯機、空隙)以及驗證和日誌框架。對於交付和平台組織,該平台旨在儘早減少手動工作、表面錯誤配置和缺少二進位制檔案,並在保持特定於環境的引數化的同時,跨產品和拓撲實現自動化標準化。
關鍵字:基礎設施自動化、宣告性部署、Ansible、YAML規範、氣隙封裝、人工製品驗證、Crosswork、NSO、CNC、CDG、BPA、驗證策略、DevOps。
| 角色 | 建議的焦點 |
|---|---|
| 決策者/領導者 | 摘要;§1價值主張;§8效益和風險狀況;§10結論 |
| 解決方案架構師 | §3-§6(體系結構、規格模型、實施、部署模式) |
| 開發運營/SRE/交付工程師 | §5-§7;附錄B;隨附內部白皮書附件 |
| 安全稽核員 | §7安全性和合規狀況;%3.2中§信任邊界 |
企業安裝的多層網路自動化和協調產品傳統上都是高度接觸式的:運行手冊長,手動步驟多,版本在站點間存在偏差,故障會顯現到整個流程中(缺少NED、錯誤的OVA路徑、空隙映像集不完整)。 這種模式增加了成本,延長了更改視窗,並且使稽核更困難。
可程式設計安裝程式將安裝視為由規範引數化的程式:拓撲、版本、平台選擇(vCenter與OpenShift與vanilla VM)、檔案路徑和授權。自動化在可能的情況下具有等效,可在所有客戶間重複執行,並會預先載入檢查,因此「未就緒」是在安裝群集或產品之前一個快速、明確的結果。
| 參與者/系統 | 角色 |
|---|---|
| 交付工程師 | 編寫或生成規格、運行打包、儲存庫準備、驗證、協調器和Ansible |
| 安裝程式主機 | Linux控制節點(本機或容器),帶Python、Ansible配置、磁碟用於工件 |
| 目標基礎設施 | vCenter、OpenShift/KubeVirt或按規範的Vanilla VM |
| 對象源 | 內部映象、授權佈局、軟體分發 — 特定於環境 |
| 下游系統 | 監控、變更管理、可選的JIRA工作流程 |
| 層 | 責任 |
|---|---|
| 規格 | 拓撲、版本、平台、路徑、授權 |
| 控制平面 | 打包、捆綁包驗證、保險儲存幫助程式、驗證驅動程式、協調器CLI |
| 自動化平面 | 主機準備、Kubernetes生命週期、產品安裝和第一天配置 |
| 專案 | 二進位制檔案、影象、圖表、OVA、tarball |
| 產品/套件組合 |
|---|
| NSO |
| CNC |
| CDG |
| BPA |
| CNC + NSO |
規範是描述平台(例如vCenter、OCP、VM、KVM)、主機、帶版本的應用程式、拓撲(例如NSO CFS/RFS佈局)、授權(NED和附加包)以及OVA、qcow2映像和應用程式層目標的檔案路徑的YAML文檔。
特定應用程式user_spec為CNC/CDG提供預設值和路徑回退。協調器的解析器將使用者規範視為真值來源,並在使用者鍵缺失時使用公用規範條目。
意圖生成器通過一組調查表、一個規則引擎(日期驅動邏輯)和到intent.yaml的模式支援對映。
協調器是指令碼化或互動式generate-intent、verify-bundle和install coordination的單一條目。其設計明顯是混合的:
就緒:AReportaggregates發現的項目;is_readyis true時,在規範分析後沒有丟失所需的檔案。該模組支援通過sys.frozen路徑解析的PyInstaller凍結二進位制檔案。
此元件為專案打包和主機先決條件安裝提供互動式選單和CLI模式:線上、氣隙或自動檢測;包括組合CNC_NSO的多應用程式套件。它填充Ansible和verify-bundle邏輯預期的對象樹。
→此框架提供分層策略控制(全域性策略應用→階段→單個檢查)、檢查的自動發現、對結構化日誌的增強報告以及可選的JIRA整合。操作員根據用於安裝的同一規格運行部署前或部署後階段,使自動化與適合企業更改規則的品質門相匹配。
典型分支上的指示性刻度:在BPA和NSO之間按照三十次檢查的順序進行檢查(在檢查時使用make list-validation-checkson確認計數)。
從規範中匯出所需的儲存庫變數,在策略下提示或接受密碼,並為Ansible發出加密的group_vars/all_secrets.yaml和儲存庫密碼檔案,從而減少了在行動手冊中的臨時加密嵌入。
| 模式 | 摘要 |
|---|---|
| 本機(AlmaLinux / RHEL) | 設定PYTHONPATH 和ANSIBLE_CONFIG;根據產品指南運行包裝、保險儲存、驗證、協調器和手冊 |
| 基於Docker的安裝程式 | scripts/setup_installer.sh和scripts/start_installer.sh(針對大型專案進行主機裝載); |
| 氣隙 | 包裝在已連線的機器上;傳輸捆綁包;目標提取;隨 — airgap安裝 |
| macOS捆綁包建立 | 在Mac上使用Epython3 ./setup_cxinstaller_prereqs.py準備捆綁包;目標部署仍按專案文檔面向Linux |
部署前呼叫示例:
cd /opt/cx-installer
python3 validation_checks/run_validation_checks.py -t pre -s specification/your_spec.yaml
使用可選標誌:
這是一種內部資源調配模式,對於更多的思科應用安裝,遵循相同的原則可劃分儲存庫。
| 主題 | 結果 |
|---|---|
| 時間和辛勞 | 減少手動步驟;在驗證捆綁包和驗證階段檢測到故障,而不是在Ansible或產品安裝程式中後期檢測到故障 |
| 一致性 | 跨服務共用的架構、角色和專案佈局減少了「snowflake」差異 |
| 斷開連線的操作 | 有文檔記錄的捆綁傳輸支援受管制網路,無需運行時下載 |
| 治理 | 結構化驗證報告和可選的JIRA掛鉤支援變更記錄和跟進 |
| 可擴充性 | 清除擴展點:ARTIFACT_DEFS、處理程式、新角色/行動手冊、意圖架構 |
量化指標(安裝持續時間、缺陷率)特定於組織;各團隊必須參照可比較拓撲上的舊版runbook。
優先使用聚合角色中的新任務;在邊界明確時引入新角色。Wire playbooks viaimport_playbookor已記錄的入門手冊。在group_vars / vars中保留安全預設值。
更新YAML架構下意圖生成器/架構/和chatbot輸入;確保生成的檔案與APP_CONFIG預期的檔名匹配。
CX可程式設計安裝程式結合了宣告性規範、用於打包和驗證的Python控制平面以及Ansible自動化平面,可在各種基礎架構和連線模型中擴展、可重複地部署Crosswork相關產品。其架構有意將意圖與執行分離,在實際中應用資料驅動的人工預期,並嵌入適合企業交付的驗證和保管庫工作流程。有關完整的操作附件(攻略表、故障排除矩陣、連線矩陣和擴展命令參考),請參閱配套的內部白皮書。
| 檔案 | Path |
|---|---|
| 操作員指南 | README.md |
| 發行攻略 | RELEASE_GUIDE.md |
| 內部架構附件 | docs/CX_INSTALLER_TECHNICAL_WHITE_PAPER_INTERNAL.md |
| Docker(線上/氣隙/使用) | SETUP_ONLINE_DOCKER.md、SETUP_AIRGAPPED_DOCKER.md、USAGE_DOCKER.md |
| 驗證框架 | docs/validation_checks/README.md |
| 儲存庫管理器 | docs/scripts/VAULT_SECRETS_MANAGER.md |
| 產品指南 | docs/nso.md、docs/bpa.md、docs/CNC_VCENTER_DEPLOYMENT_GUIDE.md、docs/CNC_OCP_DEPLOYMENT_GUIDE.md、docs/CNC_NSO_DEPLOYMENT_GUIDE.md |
| 意圖生成器 | intent-generator/README.md |
| 聊天機器人/規則流概述 | 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
安裝後專案焦點(典型):ansible_playbooks/files/artifaces/、files/bin/、files/charts/、files/images/。
指令碼:cx_deploy_orchestrator.py
| 引數 | 說明 |
|---|---|
| —app / -a | nso | crossworksuite | bpa |
| —spec / -s | YAML規範的路徑 |
| — 步驟 | generate-intent | verify-bundle | install |
| -verify-only | 驗證套件組合;未就緒時退出非零 |
| — 乾跑 | 在支援的位置進行乾式運行 |
| —list-specs | 列出已知規格 |
環境(典型會話):
export PYTHONPATH=$(pwd)
export ANSIBLE_CONFIG=$(pwd)/ansible_playbooks/ansible.cfg
| 字詞 | 定義 |
|---|---|
| 規格 | YAML使用者規範:平台、應用、拓撲、路徑、授權 |
| 意圖 | 從意圖生成器或手寫的等效項進行規範化YAML |
| 套件組合 | 用於氣隙傳輸的打包安裝程式樹(通常為tarball) |
| 協調器 | cx_deploy_orchestrator.py — 驗證/意圖/安裝協調 |
| 專案驗證 | 檔案系統檢查每個規範中是否存在所需的二進位制檔案/映像 |
| 儲存庫 | Ansible Vault-encrypted variable file for secrets |
| NED | 網路元素驅動程式套件(NSO) |
| CFS/RFS | NSO群集轉發器/冗餘轉發器拓撲概念 |
| 氣隙 | 沒有安裝程式時訪問包下載終結點的環境 |
| 版本 | 日期 | 備註 |
|---|---|---|
| 1.0 | 2026-03-27 | 初步發佈就緒技術白皮書(可程式設計安裝程式成幀) |
| 修訂 | 發佈日期 | 意見 |
|---|---|---|
2.0 |
28-Apr-2026
|
初始版本,格式設定 |
1.0 |
28-Apr-2026
|
初始版本 |