NVUE (NVIDIA User Experience) 是一套宣告式(Declarative)且以物件為導向的網路管理框架,提供一致的 CLI、REST API 與資料模型。NVUE 採用類似 Git 的版本管理邏輯,將配置生命週期劃分為 待定 (Pending)、已套用 (Applied) 與 啟動 (Startup) 三種狀態。
NVUE 預設的啟動設定檔位於 /etc/nvue.d/startup.yaml,作用相當於設備出廠設定,包含:
cumulus
cumulus 系統管理者帳號| 指令 | 功能說明 |
|---|---|
nv set <key> <value> |
修改配置:將新增或變更寫入「待定 (Pending)」緩衝區。 |
nv unset <key> |
刪除配置:從待定緩衝區中移除特定設定項目。 |
nv config diff |
比對差異:查看 Pending 與 Applied 配置之間的差異。 |
nv config apply |
套用配置:將 Pending 配置驗證並生效為運行配置(寫入底層服務)。 |
nv config save |
儲存配置:將已套用的配置寫入 /etc/nvue.d/startup.yaml,確保重啟後保留。 |
nv config patch <file.yaml> |
增量增補:使用 YAML 檔案對待定配置進行增量更新。 |
nv config replace <file.yaml> |
完整替換:以指定的 YAML 檔案完全覆蓋待定配置(刪除檔案未定義的項目)。 |
nv config detach |
分離配置:將目前待定配置抽離並建立獨立版本 ID,同時清空待定緩衝區。 |
nv config find <keyword> |
搜尋配置:在已套用的配置中依關鍵字檢索特定區塊(如介面、VLAN)。 |
nv config history |
操作歷史:檢視配置變更紀錄(版本 ID、時間戳記、操作者)。 |
nv config show |
檢視配置:以 YAML 格式 輸出目前已套用的設定。 |
nv config show -o commands |
檢視 CLI 指令:將已套用配置轉換為 nv set ... 指令輸出。 |
典型的維運流程為:修改 (Set/Patch) $\rightarrow$ 比對 (Diff) $\rightarrow$ 安全套用 (Apply) $\rightarrow$ 持久化 (Save)。
安全套用與防斷網機制 (apply)
nv config apply --confirm 10m:套用後需在 10 分鐘內執行 nv config confirm,若超時未確認(如誤配導致斷線),系統會自動回滾 (Rollback)。
nv config apply --assume-yes:跳過所有交互式確認提示,適用於自動化腳本。
增量更新與完整替換 (patch vs replace)
patch:僅變更檔案內定義的欄位,未定義的部分保持不變。
replace:將整台交換機重設為與該檔案完全一致。注意:若 YAML 未包含預設管理員帳號,會導致無法登入。
底層同步與自動化注意事項
執行 nv config apply 時,NVUE 會自動同步底層設定檔(如 /etc/network/interfaces、/etc/frr/frr.conf)。切勿手動修改底層 Linux 檔案,以免發生狀態覆蓋與衝突。
| 階段 | 動作 | 執行指令 / 機制 |
|---|---|---|
| Stage 1: 預備 | 生成宣告式 YAML 設定 | 自動化工具 / 模板引擎 |
| Stage 2: 注入 | 寫入待定緩衝區 | nv config patch <config.yaml> |
| Stage 3: 稽核 | 比對變更並檢查語法 | nv config diff |
| Stage 4: 套用 | 帶超時回滾的生效 | nv config apply --confirm 5m |
| Stage 5: 持久化 | 儲存並確認變更 | nv config apply {revision} --confirm-yes & nv config save |
| 階段 | 動作 | 執行指令 / 機制 | 目的 |
|---|---|---|---|
| Stage 1: 請求接收 | 提交配置變更 | API 接收請求 | 啟動配置事務處理 |
| Stage 2: 預備注入 | 寫入待定區 | nv config patch <payload.yaml> |
併入 Pending 緩衝區 |
| Stage 3: 語法/邏輯失敗 | 檢測到校驗錯誤 | 捕獲 API 4xx/5xx 或 stderr | 阻止錯誤配置套用到運行環境 |
| Stage 4: 隔離清理 | 抽離錯誤配置 | nv config detach |
清空 Pending 區並將錯誤狀態轉存至沙盒 ID |
| Stage 5: 錯誤回報 | 回傳錯誤資訊 | 回傳失敗日誌至管理者 | 保持設備待定區乾淨,便於後續排錯 |
replace**:日常維護建議一律使用 patch。若必須使用 replace,請確認 YAML 包含完整的 cumulus 帳號及驗證授權。ifupdown2 或手動編輯 /etc/network/interfaces。nvue-startup.service 為啟用狀態 (systemctl is-enabled nvue-startup.service),確保重啟後自動加載 /etc/nvue.d/startup.yaml。