iT邦幫忙

2026 iThome 鐵人賽

DAY 2
0

什麼是 NVUE?

NVUE (NVIDIA User Experience) 是一套宣告式(Declarative)且以物件為導向的網路管理框架,提供一致的 CLI、REST API 與資料模型。NVUE 採用類似 Git 的版本管理邏輯,將配置生命週期劃分為 待定 (Pending)已套用 (Applied)啟動 (Startup) 三種狀態。

預設啟動檔案 (Default Startup File)

NVUE 預設的啟動設定檔位於 /etc/nvue.d/startup.yaml,作用相當於設備出廠設定,包含:

  • Hostname:預設為 cumulus
  • 防火牆規則:基本存取控制
  • 使用者帳號:預設的 cumulus 系統管理者帳號
  • API 服務:預設啟用 NVUE REST API

常用配置管理指令

1. 配置生命週期與維運指令

指令 功能說明
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 ... 指令輸出。

2. 核心操作模式

典型的維運流程為:修改 (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 檔案,以免發生狀態覆蓋與衝突。

3. 操作流程範例

正常配置流程 (CI/CD / API 整合)

階段 動作 執行指令 / 機制
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

異常隔離流程 (Rollback / 沙盒處理)

階段 動作 執行指令 / 機制 目的
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: 錯誤回報 回傳錯誤資訊 回傳失敗日誌至管理者 保持設備待定區乾淨,便於後續排錯

關鍵注意事項

  1. **謹慎使用 replace**:日常維護建議一律使用 patch。若必須使用 replace,請確認 YAML 包含完整的 cumulus 帳號及驗證授權。
  2. 單一配置來源:全面透過 NVUE 管理,避免混用傳統 ifupdown2 或手動編輯 /etc/network/interfaces
  3. 服務依賴性:確認 nvue-startup.service 為啟用狀態 (systemctl is-enabled nvue-startup.service),確保重啟後自動加載 /etc/nvue.d/startup.yaml

參考資源


上一篇
系列文
ToR 的復仇-頂架也能跑馬拉松2
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言