除了預先定義的 Runbook 外,線上診斷系統 (ODS) 功能還支援動態 Runbook,以用於在執行階段偵錯 NSX

由於動態 Runbook 不依賴於 NSX 版本,因此您可以隨時安裝動態 Runbook。動態 Runbook 解決了以下問題:

  • 由於預先定義 Runbook 的開發和維護遵循 NSX 發佈週期,因此無法在發行週期之間對即時站台上出現的問題進行偵錯。而有了動態 Runbook,便可以在發行週期之間實作任何偵錯需求,因為動態 Runbook 可以隨時開發和安裝。
  • 如果只是部分升級 NSX,則 Runbook 與呼叫該動作的 API 可能不相容。例如,您升級了傳輸節點,但沒有升級整合的應用裝置 (UA),並且升級會在傳輸節點上安裝新版本的 Runbook。在此情況下,UA 可能無法使用較舊的 API 叫用較新版本的 Runbook,因為該 API 可能已過時。

只有 VMware 團隊才能建立動態 Runbook,但您可以下載動態 Runbook,以便將其安裝到您的系統。請注意,Runbook 不支援資料備份和還原。

若要安裝動態 Runbook,您需要定義一個名為動態 Runbook 執行個體的群組。動態 Runbook 執行個體將定義要安裝 Runbook 的所有安裝節點群組。如果向群組新增節點,則 Runbook 將自動安裝在新節點上。

對於 NSX 4.2,可以下載以下 Runbook。如需有關 Runbook 的詳細資訊,請從以下 VMware 站台下載套件:https://support.broadcom.com/group/ecx/downloads

表 1.
Runbook 說明
Hyperbus Runbook

動態 Hyperbus Runbook 可以檢查以下 Hyperbus 問題,並提供修復建議:

  • Hyperbus 連線
  • Hyperbus 連線的組態
  • vmknic
  • Hyperbus 連線的狀態

此 Runbook 會採用 vif-id 以作為輸入引數。

若要安裝動態 Runbook,請執行以下步驟:

必要條件

從 VMware 站台 https://support.broadcom.com/group/ecx/downloads 下載動態套件。

程序

  1. 取得要包含在安裝節點群組中的傳輸節點的路徑。
    GET https://10.180.85.179/policy/api/v1/infra/sites/default/enforcement-points/default/host-transport-nodes
  2. 建立安裝節點群組。該群組可以是原則群組、傳輸節點群組或 UA 節點群組。
    PATCH https://<nsx-mgr>/policy/api/v1/infra/domains/default/groups/<group-name>
    {
        "expression": 
       [
            {
                "paths": [
                    "/infra/sites/default/enforcement-points/default/host-transport-nodes/TN1"
                ],
                "resource_type": "PathExpression"
            }
        ],
        "extended_expression": [],
        "reference": false,
        "group_type": [],
        "resource_type": "Group"
    }
    
  3. 建立包含所有安裝節點群組的動態 Runbook 執行個體。
    POST https://{{MANAGER_IP}}/policy/api/v1/infra/sha/dynamic-runbook-instances/<dynamic-instanace-id>
    {
        "applied_to_group_paths": [
            "/infra/domains/default/groups/TNGroup1"  [Policy Group with node path]
        ],
        "applied_to_nodes": [
            "1e6314a2-a268-4a3a-bcae-4f23b2536ea8"  [The node id can be a host/edge/UA node id]
        ],
        "applied_to_all_appliances": true   [All UA cluster]
    }
    
  4. 將 Runbook 套件上傳至動態 Runbook 執行個體。
    POST https://{{MANAGER_IP}}/policy/api/v1/infra/sha/dynamic-runbook-instances/<dynamic-instanace-id>/file
    動態 Runbook 資料將套用於指定了此群組的目標節點。
  5. 查詢安裝狀態。
    GET https://10.180.85.179/policy/api/v1/infra/sha/dynamic-runbook-instances/<dynamic-instanace-id>/state
    {
        "runbook_name": "Example",
        "management_state": "INSTALL_FINISHED",
        "install_state": [
            {
                "node_id": "084583fa-3ae7-4d0c-98f1-6fc4cb5044b1",
                "node_name": "TN301",
                "version": {
                    "major": 1,
                    "minor": 0
                },
                "status": "INSTALL_FINISHED"
            }
    }
    
  6. 使用以下 API 檢查已安裝 Runbook 的詳細資料。
    GET https://{{MANAGER_IP}}/policy/api/v1/infra/sha/dynamic-runbooks
  7. 使用主題 在執行階段偵錯 NSX 中所述的步驟叫用 Runbook。

下一步

若要將動態 Runbook 執行個體延伸至其他節點,請執行以下 API。

PATCH https://10.180.85.179/policy/api/v1/infra/sha/dynamic-runbook-instances/<dynamic-instanace-id>
{
"applied_to_group_paths":["/infra/domains/default/groups/<tn-group-name>"],
"applied_to_nodes":["<target-edge-id>","<target-ua-id>"]
}

若要解除安裝 Runbook,請執行以下 API。

DELETE https://10.180.85.179/policy/api/v1/infra/sha/dynamic-runbook-instances/<dynamic-instanace-id>/file

若要解除安裝動態 Runbook 執行個體,請執行以下 API。

DELETE https://10.180.85.179/policy/api/v1/infra/sha/dynamic-runbook-instances/<dynamic-instanace-id>