La funzionalità ODS (Online Diagnostic System) automatizza il debug di NSX al runtime. L'ODS viene implementato tramite runbook integrati in NSX. I runbook contengono procedure di debug e hanno la completa osservabilità dei componenti di NSX. Un runbook genera un report di debug. Genera inoltre artefatti di runtime di un problema, come l'acquisizione di pacchetti, il dump principale in tempo reale del processo utente e l'output di script e strumenti. Questi artefatti possono essere raccolti in un secondo momento e utilizzati per l'analisi e il debug offline. Si noti che non è possibile modificare un runbook predefinito.

È possibile utilizzare le API per eseguire le seguenti operazioni con i runbook:

  • Richiamare un runbook per avviare il debug di runtime
  • Controllare il report di debug
  • Scaricare gli artefatti generati dal runbook richiamato
  • Gestire il ciclo di vita di un runbook

Runbook predefiniti

A partire da NSX 4.1.1, ODS è supportato anche per Unified Appliance (UA). Nella tabella seguente sono elencati i runbook e anche i nodi in cui è possibile eseguirli.

Tabella 1.
Runbook Descrizione Nodo Versione
PnicPerf Questo runbook può identificare i problemi relativi alle prestazioni di pNIC Tx e Rx.

Questo runbook accetta l'ID della porta logica da diagnosticare come argomento di input.

ESXi 4.1
OverlayTunnel Questo runbook può identificare gli errori del tunnel di overlay, ad esempio un errore di configurazione del gateway, un tunnel mancante o unl tunnel inattivo.

Questo runbook accetta come argomenti di input l'indirizzo IP del VTEP di origine e l'indirizzo IP del VTEP di destinazione.

ESXi 4.1
PortBlock Questo runbook può identificare le cause del blocco di una porta, ad esempio se una DVPort è bloccata a causa di una configurazione LSP/LS errata. ESXi 4.1
AdfCollect Questo runbook raccoglie i dati delle prestazioni del percorso dati ESXi tramite l'agente di raccolta ADF.

Questo runbook accetta i seguenti argomenti di input:

  • advanced: indica se sono abilitati gli strumenti per le prestazioni avanzate.
  • cycle: numero di cicli di raccolta ADF.
  • interval: Intervallo di attesa tra cicli di raccolta ADF consecutivi in secondi.
ESXi 4.1
ControllerConn Questo runbook può identificare i problemi di connettività del controller causati da un errore del controller, da un errore del proxy, da un'interruzione della rete underlay o da un errore di risoluzione del nome di dominio completo (FQDN).

Questo runbook accetta come argomenti di input l'indirizzo IP dell'host ESXi e l'indirizzo IP del controller.

ESXi 4.1
NxgiPlatform

Questo runbook diagnostica i problemi nel percorso dati della piattaforma NXGI che alimenta varie funzionalità, come MPS distribuito, protezione endpoint, IDFW, IDS e Intelligence.

Questo runbook accetta la funzionalità come argomento di input. Questa è la funzionalità specifica dipendente da NXGI (una da MPS, IDFW, IDS, EPP e Intelligence con EPP come impostazione predefinita) che deve essere verificata o sottoposta a debug.

ESXi 4.1.1
VifInfo

Questo runbook ottiene informazioni dettagliate su un'interfaccia virtuale, che può essere utilizzata come input per altri runbook.

Questo runbook accetta VIF come argomento di input.

ESXi 4.1.1
EdgeHealth
Questo runbook esegue le seguenti funzioni:
  • Gestisce i problemi di inattività dell'Edge più comuni che si verificano durante le distribuzioni e gli aggiornamenti.
  • Suggerisce soluzioni alternative per ripristinare lo stato di integrità del nodo Edge e riprendere il normale funzionamento.

Questo runbook non include alcun argomento di input.

Edge 4.1.1
MacAddressInfo
Questo runbook diagnostica i problemi relativi a un indirizzo MAC specifico, nonché controlla e corregge i problemi relativi alle prestazioni in un commutatore host e svolge le seguenti funzioni:
  • Per un determinato indirizzo MAC e commutatore host, questo runbook ottiene i dettagli dell'indirizzo MAC (come MAC, VLAN, VNI e portID) dalla tabella degli indirizzi MAC del commutatore host e fornisce una diagnosi nel caso in cui non sia presente un MAC.
  • Per un determinato indirizzo MAC statico utilizzato da una VNIC, recupera anche le informazioni VLAN e VNI della porta della VNIC.

Questo runbook accetta il nome del commutatore host e l'indirizzo MAC come argomenti di input.

ESXi 4.1.1
EdgeDpBfd

Questo runbook esegue una verifica dei problemi di BFD di NSX Edge.

Questo runbook accetta l'IP di origine e l'IP di destinazione della sessione BFD come argomenti di input. Accetta inoltre capture come argomento facoltativo per garantire che vengano filtrati e acquisiti solo i pacchetti BFD specifici della sessione.

Edge 4.1.1
DistributedMps

Questo runbook verifica l'integrità della pipeline di Malware Prevention Service (MPS) e diagnostica gli eventuali problemi rilevati con MPS, ad esempio la protezione non funzionante in una determinata macchina virtuale o la mancata scansione di alcuni file.

L'argomento di input per questo runbook è l'UUID della macchina virtuale da diagnosticare per la protezione.

ESXi 4.1.1
DuplicateVtepDetectorProvider

Questo runbook rileva qualsiasi IP o etichetta duplicati nei VTEP.

Questo runbook non include alcun argomento di input.

UA 4.1.1
LspStaleInfo

Questo runbook recupera le porte logiche obsolete.

Questo runbook non include alcun argomento di input.

UA
BgpNeighborState

Questo runbook diagnostica vari flussi che possono causare l'inattività del router adiacente BGP. Il runbook raccoglie anche i seguenti artefatti di supporto per il debug offline.

  • Acquisizione di pacchetti BGP e BFD.
  • Risultati di ping e traceroute.

Questo runbook accetta i seguenti argomenti di input:

  • IP peer: questo argomento è obbligatorio e accetta l'indirizzo IP del router adiacente BGP.
  • Nome router logico: questo argomento è obbligatorio e accetta il nome del router logico configurato dall'utente.
  • Acquisizione di pacchetti: questo è un argomento facoltativo. Se l'opzione è impostata su True, il runbook acquisisce i pacchetti BGP/BFD. Per impostazione predefinita è impostata su False.
Edge 4.1.1
PimMrouteState

Questo runbook esegue la valutazione della perdita di traffico multicast che può verificarsi a causa di vari motivi.

Dato un IP di origine del mittente del traffico multicast e l'IP del gruppo del traffico multicast, questo runbook consente di identificare la causa principale del problema e raccogliere gli artefatti di supporto per il debug offline.

Questo runbook accetta l'IP di origine, l'IP del gruppo e la direzione del traffico come argomenti di input.

Edge 4.1.1
OspfNbrState

Questo runbook esegue la valutazione dei problemi relativi allo stato del router adiacente OSPF diagnosticando vari flussi logici.

Questo runbook accetta l'indirizzo IP del router adiacente come argomento di input.

Edge 4.1.1
IdpsDpStatus

Questo runbook verifica lo stato del modulo IDPS/IDS (motore nel contesto) e del motore IDPS. Esso inoltre confronta i profili caricati, le regole, le firme e gli eventi acquisiti nel modulo IDPS e nel modulo del motore IDPS.

Questo runbook non include alcun argomento di input.

ESXi 4.1.1
NxgiPlatformUA

Questo runbook diagnostica i problemi nel piano di gestione per la piattaforma NXGI, che alimenta varie funzionalità quali MPS distribuito, protezione endpoint, IDFW, IDS e Intelligence. Questo runbook può essere utilizzato in combinazione con il runbook NxgiPlatform eseguito nei nodi di trasporto.

Questo runbook accetta l'ID del nodo di trasporto come argomento di input facoltativo.

UA 4.1.1
CorfuServer

Questo runbook verifica la stabilità del layout del server Corfu, la condizione di ping infrastruttura e I/O del disco e l'integrità del compattatore.

Per sovrascrivere i valori predefiniti di giorni o ore degli eventi di registro precedenti, questo runbook richiede giorni di lookback e ore di lookback come argomenti di input.

UA 4.1.1
EdgeIDPS

Questo runbook controlla e recupera le statistiche per la firma IDS/IPS presente nell'Edge.

Questo runbook accetta l'ID firma come argomento di input.

Edge 4.1.1
EdgeRouting

Questo runbook verifica più aspetti dell'integrità di un determinato router logico e fornisce un elenco di processi Edge non integri. Il runbook fornisce indicazioni per la risoluzione dei problemi più comuni del routing nord/sud.

Il runbook raccoglie varie informazioni e segnala lo stato dei protocolli di routing, dei tunnel e delle porte. Eseguirà un controllo dell'integrità dello stack di routing e dei vari daemon utilizzati dal routing nell'Edge. Per l'IP di destinazione specificato, controlla le tabelle RIB, FIB e ARP. Eseguirà inoltre un ping e un traceroute utilizzando l'IP di origine e di destinazione.

Questo runbook accetta i seguenti argomenti di input:
  • IP di destinazione/peer: questo è un argomento obbligatorio.
  • IP di origine: questo è un argomento obbligatorio. L'IP di origine viene utilizzato per il ping e il traceroute e deve essere un IP dell'interfaccia a cui dovrebbe essere indirizzato l'IP di destinazione.
  • Nome router logico (LR): questo è un argomento obbligatorio. Si tratta del nome del router logico configurato nel sistema.
Edge 4.1.1

PimConfigCheck

Questo runbook fornisce ulteriori dettagli sull'errore esatto quando l'Edge genera routing_config_error. Esso inoltre aiuta a individuare il problema.

Questo runbook non include alcun argomento di input.

Edge 4.1.1
NCPPendingPod Questo runbook esegue il debug di un pod bloccato in uno stato in sospeso.

Questo runbook accetta come argomenti di input lo spazio dei nomi e il nome del pod in sospeso.

ESXi 4.1.2
PortStatusInfo Questo runbook identifica i problemi di una porta connessa a vSwitch.

Il runbook accetta l'ID VIF come argomento di input per recuperare i dettagli della porta.

ESXi 4.2.1

Passaggi per il debug in fase di runtime

Per eseguire il debug al runtime, eseguire i passaggi seguenti:

Passaggio 1: recuperare un elenco di runbook predefiniti.

Eseguire l'API seguente per recuperare un elenco di runbook predefiniti.

GET https://<nsx-mgr>/policy/api/v1/infra/sha/pre-defined-runbooks

Questa API restituisce un elenco di runbook predefiniti insieme alle seguenti informazioni:

  • Dettagli della configurazione.
  • Tipo di nodo in cui è supportato il runbook.
  • Dettagli generali del runbook quali ID, nome e percorso.
  • Dettagli dei parametri se necessari al momento del richiamo del runbook.

Risposta di esempio:

{
    "results": [
        {
            "version": {
                "major": 1,
                "minor": 0
            },
            "default_config": {
                "enabled": true,
                "timeout": 300,
                "threshold_number": 5,
                "throttle_cycle": 10
            },
            "supported_node_types": [
                "nsx-esx"
            ],
            "parameters": [
                {
                    "name": "advanced",
                    "optional": true,
                    "parameter_type": "BOOLEAN",
                    "default_value": "False"
                },
                {
                    "name": "cycle",
                    "optional": false,
                    "parameter_type": "INTEGER",
                    "max": "20",
                    "min": "1"
                },
                {
                    "name": "interval",
                    "optional": true,
                    "parameter_type": "INTEGER",
                    "max": "300",
                    "min": "1"
                }
            ],
            "resource_type": "OdsPredefinedRunbook",
            "id": "00000000-0000-4164-6643-6f6c6c656374",
            "display_name": "AdfCollect",
            "path": "/infra/sha/pre-defined-runbooks/00000000-0000-4164-6643-6f6c6c656374",
            "relative_path": "00000000-0000-4164-6643-6f6c6c656374",
            "parent_path": "/infra",
            "remote_path": "",
            "unique_id": "069a4c7b-532a-4926-a402-6a7986a306b2",
            "realization_id": "069a4c7b-532a-4926-a402-6a7986a306b2",
            "owner_id": "f2a2a9e1-2578-435d-877d-47e01eb04954",
            "origin_site_id": "f2a2a9e1-2578-435d-877d-47e01eb04954",
            "marked_for_delete": false,
            "overridden": false,
            "_create_time": 1669600880454,
            "_create_user": "system",
            "_last_modified_time": 1669600880454,
            "_last_modified_user": "system",
            "_system_owned": false,
            "_revision": 0
        },
        {
            "version": {
                "major": 1,
                "minor": 0
            },
            "default_config": {
                "enabled": true,
                "timeout": 60,
                "threshold_number": 5,
                "throttle_cycle": 3
            },
            "supported_node_types": [
                "nsx-esx"
            ],
            "resource_type": "OdsPredefinedRunbook",
            "id": "0000436f-6e74-726f-6c6c-6572436f6e6e",
            "display_name": "ControllerConn",
            "path": "/infra/sha/pre-defined-runbooks/0000436f-6e74-726f-6c6c-6572436f6e6e",
            "relative_path": "0000436f-6e74-726f-6c6c-6572436f6e6e",
            "parent_path": "/infra",
            "remote_path": "",
            "unique_id": "3914cbe4-41b4-45f1-9dad-2bd96a2de0d8",
            "realization_id": "3914cbe4-41b4-45f1-9dad-2bd96a2de0d8",
            "owner_id": "f2a2a9e1-2578-435d-877d-47e01eb04954",
            "origin_site_id": "f2a2a9e1-2578-435d-877d-47e01eb04954",
            "marked_for_delete": false,
            "overridden": false,
            "_create_time": 1669600880493,
            "_create_user": "system",
            "_last_modified_time": 1669600880493,
            "_last_modified_user": "system",
            "_system_owned": false,
            "_revision": 0
        },
        {
            "version": {
                "major": 1,
                "minor": 0
            },
            "default_config": {
                "enabled": true,
                "timeout": 120,
                "threshold_number": 5,
                "throttle_cycle": 5
            },
            "supported_node_types": [
                "nsx-esx"
            ],
            "parameters": [
                {
                    "name": "src",
                    "optional": false,
                    "parameter_type": "COMPOUND"
                },
                {
                    "name": "dst",
                    "optional": false,
                    "parameter_type": "COMPOUND"
                }
            ],
            "resource_type": "OdsPredefinedRunbook",
            "id": "0000004f-7665-726c-6179-54756e6e656c",
            "display_name": "OverlayTunnel",
            "path": "/infra/sha/pre-defined-runbooks/0000004f-7665-726c-6179-54756e6e656c",
            "relative_path": "0000004f-7665-726c-6179-54756e6e656c",
            "parent_path": "/infra",
            "remote_path": "",
            "unique_id": "3597af28-e670-456e-8347-4d1a53a5cb90",
            "realization_id": "3597af28-e670-456e-8347-4d1a53a5cb90",
            "owner_id": "f2a2a9e1-2578-435d-877d-47e01eb04954",
            "origin_site_id": "f2a2a9e1-2578-435d-877d-47e01eb04954",
            "marked_for_delete": false,
            "overridden": false,
            "_create_time": 1669600880518,
            "_create_user": "system",
            "_last_modified_time": 1669600880518,
            "_last_modified_user": "system",
            "_system_owned": false,
            "_revision": 0
        },
        {
            "version": {
                "major": 1,
                "minor": 0
            },
            "default_config": {
                "enabled": true,
                "timeout": 120,
                "threshold_number": 5,
                "throttle_cycle": 5
            },
            "supported_node_types": [
                "nsx-esx"
            ],
            "parameters": [
                {
                    "name": "lsp",
                    "optional": false,
                    "parameter_type": "STRING"
                }
            ],
            "resource_type": "OdsPredefinedRunbook",
            "id": "00000000-0000-0000-506e-696350657266",
            "display_name": "PnicPerf",
            "path": "/infra/sha/pre-defined-runbooks/00000000-0000-0000-506e-696350657266",
            "relative_path": "00000000-0000-0000-506e-696350657266",
            "parent_path": "/infra",
            "remote_path": "",
            "unique_id": "53f29b77-dcf5-4561-85ec-8f35280e3f3a",
            "realization_id": "53f29b77-dcf5-4561-85ec-8f35280e3f3a",
            "owner_id": "f2a2a9e1-2578-435d-877d-47e01eb04954",
            "origin_site_id": "f2a2a9e1-2578-435d-877d-47e01eb04954",
            "marked_for_delete": false,
            "overridden": false,
            "_create_time": 1669600880553,
            "_create_user": "system",
            "_last_modified_time": 1669600880553,
            "_last_modified_user": "system",
            "_system_owned": false,
            "_revision": 0
        },
        {
            "version": {
                "major": 1,
                "minor": 0
            },
            "default_config": {
                "enabled": true,
                "timeout": 60,
                "threshold_number": 5,
                "throttle_cycle": 3
            },
            "supported_node_types": [
                "nsx-esx"
            ],
            "parameters": [
                {
                    "name": "vif",
                    "optional": false,
                    "parameter_type": "STRING"
                }
            ],
            "resource_type": "OdsPredefinedRunbook",
            "id": "00000000-0000-0050-6f72-74426c6f636b",
            "display_name": "PortBlock",
            "path": "/infra/sha/pre-defined-runbooks/00000000-0000-0050-6f72-74426c6f636b",
            "relative_path": "00000000-0000-0050-6f72-74426c6f636b",
            "parent_path": "/infra",
            "remote_path": "",
            "unique_id": "6f411a92-30c0-4838-9758-c00220cb5fab",
            "realization_id": "6f411a92-30c0-4838-9758-c00220cb5fab",
            "owner_id": "f2a2a9e1-2578-435d-877d-47e01eb04954",
            "origin_site_id": "f2a2a9e1-2578-435d-877d-47e01eb04954",
            "marked_for_delete": false,
            "overridden": false,
            "_create_time": 1669600880572,
            "_create_user": "system",
            "_last_modified_time": 1669600880572,
            "_last_modified_user": "system",
            "_system_owned": false,
            "_revision": 0
        }
    ],
    "result_count": 5,
    "sort_by": "display_name",
    "sort_ascending": true
}
Nella risposta precedente, vengono restituiti i seguenti runbook predefiniti.
  • AdfCollect
  • ControllerConn
  • OverlayTunnel
  • PnicPerf
  • PortBlock

    Se un runbook richiede un parametro al momento del richiamo, i dettagli del parametro vengono specificati nella chiave parametri. Ad esempio, il runbook del tunneling di overlay richiede due parametri, source e destination che siano IP VTEP locali e remoti del tunnel da diagnosticare.

Passaggio 2: recuperare i dettagli dei parametri del runbook.

Eseguire l'API seguente per recuperare i dettagli del parametro di un runbook che si desidera richiamare.

https://{{MANAGER_IP}}/policy/api/v1/infra/sha/pre-defined-runbooks/0000004f-7665-726c-6179-54756e6e656c/help
{
    "summary": "Runbook to diagnose overlay tunnel issues.",
    "parameter_info": [
        {
            "summary": "IP address of source VTEP",
            "parameter": {
                "name": "src",
                "optional": false,
                "parameter_type": "COMPOUND"
            }
        },
        {
            "summary": "IP address of destination VTEP",
            "parameter": {
                "name": "dst",
                "optional": false,
                "parameter_type": "COMPOUND"
            }
        }
    ]
}
Si noti che il parameter name è mappato a key e parameter type viene mappato a value nell'API di chiamata di un runbook.
Passaggio 3: richiamare il runbook.

Eseguire l'API seguente per richiamare un runbook.

POST https://<nsx-mgr>/policy/api/v1/infra/sha/runbook-invocations/<invoke-name>

Richiesta di esempio: richiamo del runbook del tunneling di overlay.

POST https://<nsx-mgr>/policy/api/v1/infra/sha/runbook-invocations/OverlayTunnel
{
    "runbook_path": "/infra/sha/pre-defined-runbooks/0000004f-7665-726c-6179-54756e6e656c",
    "target_node": "6c7a9374-459d-46b2-9ea6-c63b37c7cc38",
    "arguments": [
        {
            "key": "src",
            "value": "192.168.0.11"
        },
        {
            "key": "dst",
            "value": "192.168.0.10"
        }
    ]
}
Il target_node può essere un nodo host, un nodo Edge o un nodo Unified Appliance.

L'ID di un host o di un Edge può essere ottenuto tramite la seguente API.

https://{{MANAGER_IP}}/api/v1/transport-nodes

L'elenco di ID dell'appliance può essere ottenuto dall'API del cluster. L'ID valido è l'ID esterno dell'appliance con ruolo di manager.

https://{{MANAGER_IP}}/api/v1/cluster/nodes
Passaggio 4: controllare il report del runbook richiamato.

Eseguire l'API seguente per ottenere il report del runbook invocato.

GET https://<nsx-mgr>/policy/api/v1/infra/sha/runbook-invocations/<invoke-name>/report

Richiesta di esempio:

GET https://<nsx-mgr>/policy/api/v1/infra/sha/runbook-invocations/OverlayTunnel/report

Risposta di esempio:

{
    "invocation_id": "70527fed-1e5e-4fed-a880-28cde04a66b1",
    "target_node": "6c7a9374-459d-46b2-9ea6-c63b37c7cc38",
    "timestamp": 1662469099,
    "sys_info": {
        "host_name": "sc2-10-185-4-158.eng.vmware.com",
        "os_name": "VMkernel",
        "os_version": "7.0.3"
    },
    "result_message": "Tunnel 192.168.0.11 -> 192.168.0.10 is in up state",
    "recommendation_message": "No changes required as the tunnel is in up state.",
    "step_details": [
        {
            "step_id": 1,
            "action_summary": "Check the status of tunnel for the given source/destination VTEPs.",
            "action_result": "Tunnel 192.168.0.11 -> 192.168.0.10 is in state up"
        }
    ],
    "status": {
        "request_status": "SUCCESS",
        "operation_state": "FINISHED"
    }
}

La risposta restituisce alcune informazioni sui metadati, come data e ora, e dettagli del sistema, come il nome host e il sistema operativo. Il report restituisce anche il risultato del debug e il suggerimento di correzione, se presente, insieme ai passaggi eseguiti per il debug con il riepilogo dell'azione e il risultato dell'azione di ogni passaggio. Se il debug viene interrotto per un motivo qualsiasi, il campo operation_state conterrà un valore che definisce il motivo dell'interruzione. Se il richiamo del runbook non riesce, il report fornisce i dettagli dell'errore e non mostra i campi correlati al debug.

Passaggio 5: scaricare gli artefatti.
  1. Eseguire l'API seguente per raccogliere gli artefatti.

    POST https://{{mgr-ip}}/policy/api/v1/infra/sha/runbook-invocations/{{invocation-name}}

    Richiesta di esempio:
    POST https://{{mgr-ip}}/policy/api/v1/infra/sha/runbook-invocations/{{invocation-name}}
    {
        "runbook_path": "/infra/sha/pre-defined-runbooks/00000000-0000-4164-6643-6f6c6c656374",
        "target_node": "{{target-node}}",
        "arguments": [
            {
                "key": "advanced",
                "value": "{{advanced-mode}}"
            },
            {
                "key": "cycle",
                "value": "{{cycle-count}}"
            },
            {
                "key": "interval",
                "value": "{{interval-in-sec}}"
            }
        ]
    }

    Se il parametro advanced è impostato su false al momento della chiamata, il runbook raccoglierà informazioni sulla topologia, statistiche di rete, statistiche DP NSX e informazioni di uplink. Se il parametro advanced è impostato su true, il runbook eseguirà inoltre strumenti di prestazioni avanzate come vmkstats (disponibile solo sulla macchina fisica).

    Il parametro cycle definisce il numero di volte in cui l'agente di raccolta ADF viene eseguito in una chiamata.

    Il parametro interval definisce l'intervallo di attesa tra le esecuzioni consecutive dell'agente di raccolta ADF. Diventa effettivo solo quando il parametro cycle è impostato su un valore maggiore di 1.

    Risposta di esempio:

    {
        "invocation_id": "80a0037a-52e1-48d7-b28e-c3bfb8475e8c",
        "target_node": "b794f78f-7eb0-433f-8f11-63e6b3121c28",
        "timestamp": 1668674073,
        "sys_info": {
            "host_name": "sc2-rdops-vm06-dhcp-204-101.eng.vmware.com",
            "os_name": "VMkernel",
            "os_version": "7.0.3"
        },
        "result_message": "ADF data collection runbook completes.",
        "recommendation_message": "No action needs to be taken.",
        "step_details": [
            {
                "step_id": 1,
                "action_summary": "Run ADF collector.",
                "action_result": "ADF data collection is successfully performed in the following time point(s) along with the following artifact(s): [(2022-11-17 08:35:30, a44f0446-0ac3-4e7f-8513-fb1248985d9e.tar)]",
                "artifacts": [
                    "a44f0446-0ac3-4e7f-8513-fb1248985d9e"
                ]
            }
        ],
        "status": {
            "request_status": "SUCCESS",
            "operation_state": "FINISHED"
        }
    }
  2. Per scaricare gli artefatti, eseguire l'API seguente.

    GET https://<nsx-mgr>/policy/api/v1/infra/sha/runbook-invocations/<invoke-name>/artifact

Se il runbook ha generato gli artefatti, l'API restituisce un file in bundle, altrimenti restituisce un messaggio di errore. Salvare la risposta binaria in un file tar.gz. Questo file contiene un report di chiamata del runbook (in JSON) e un file tar per la raccolta ADF eseguita.

Modifica della configurazione di un runbook

Viene innanzitutto creato un gruppo di nodi di trasporto (TN) a cui viene quindi associato un profilo di runbook. Se si modifica la configurazione di un runbook, viene modificata in tutti i nodi a cui è associato il profilo del runbook. È possibile configurare se un runbook è abilitato o meno, il timeout di debug e la frequenza con cui è possibile richiamare il runbook utilizzando il meccanismo del ciclo di limitazione. Il meccanismo del ciclo di limitazione specifica il numero di volte in cui un runbook può essere eseguito in un determinato momento.

Si noti che un runbook può avere un solo profilo, ma un nodo potrebbe avere più profili di runbook in base ai gruppi TN a cui appartiene. In questo caso, al nodo viene applicato il profilo con la priorità più alta.

Per modificare la configurazione di un runbook, eseguire i passaggi seguenti.

Passaggio 1: creare un gruppo TN di ESXi.

Eseguire l'API seguente per creare un gruppo TN.

PATCH https://<nsx-mgr>/policy/api/v1/infra/domains/default/groups/<group-name>

Richiesta di esempio:

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"
}
Passaggio 2: modificare la configurazione del profilo del runbook e associare il gruppo TN al profilo.

Eseguire l'API seguente per modificare la configurazione:

PATCH https://<nsx-mgr>/policy/api/v1/infra/sha/runbook-profiles/<profile-name>

Richiesta di esempio:

PATCH https://<nsx-mgr>/policy/api/v1/infra/sha/runbook-profiles/<profile-name>
{
    "runbook_path": "/infra/sha/pre-defined-runbooks/0000004f-7665-726c-6179-54756e6e656c",
    "applied_to_group_path": "/infra/domains/default/groups/tngroup2",
    "config": {
        "enabled": true,
        "timeout": 120,
        "threshold_number": 2,
        "throttle_cycle": 6
    }
}

In questo esempio, throttle_cycle è 6 minuti e threshold_number è 2, il che significa che, entro 6 minuti, il runbook non può essere richiamato più di due volte.

Per informazioni complete sulle API ODS, vedere la Guida all'API di NSX Intelligence e NSX Application Platform.