- Home
- Rete multi-cloud
- Customer Edge diagnostics
- Reaching a Customer Edge
- API di debug
API di debug
Acquisito il 28-07-2026 da un CE di questo deployment. sitecli/capture-manifest.json
registra quale nodo, e scripts/capture-sitecli.sh --check riverifica la superficie
dei comandi su un CE attivo.
L’API vpm/debug esegue comandi Site CLI su un nodo registrato e ne restituisce
l’output. Tutto quanto segue è stato accertato su un nodo attivo; nulla di ciò è
pubblicato upstream.
Il catalogo dei comandi è autodescrittivo
Sezione intitolata “Il catalogo dei comandi è autodescrittivo”Chiedete al nodo quali comandi supporta effettuando una POST a exec-user con la chiave
command omessa:
curl -sS -X POST \ -H "Authorization: APIToken $XCSH_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{"namespace":"system","site":"<site>","node":"<node>"}' \ "$XCSH_API_URL/api/operate/namespaces/system/sites/<site>/vpm/debug/<node>/exec-user" \ | jq -r .output | jq .La risposta è un oggetto JSON con chiave il nome del comando:
{ "crictl-inspect": ["System Troubleshooting", "ExecUser", " container-id"], "diagnosis": ["System Troubleshooting", "ExecUser", "no argument needed", "GLOBAL"], "ip-link-set": ["Network Troubleshooting", "Exec", " (<device>||<group>) (up||down)"]}Ogni voce è [category, tier, exampleArgument?, scope?], e questi campi non sono
documentazione: determinano come il comando deve essere invocato.
Tre trasporti, scelti in base alla voce del catalogo
Sezione intitolata “Tre trasporti, scelti in base alla voce del catalogo”| Condizione | Metodo e percorso | Corpo | Restituisce |
|---|---|---|---|
scope è GLOBAL | GET .../vpm/debug/global/<cmd> | nessuno | JSON |
tier è ExecUser | POST .../vpm/debug/<node>/exec-user | array command | testo |
tier è Exec | POST .../vpm/debug/<node>/exec | array command | testo |
ExecUser — il tier in sola lettura 31 comandi
Sezione intitolata “ExecUser — il tier in sola lettura ”Il caso più comune. Passate il comando e i suoi argomenti come array, con il nome del comando per primo:
curl -sS -X POST \ -H "Authorization: APIToken $XCSH_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{"namespace":"system","site":"<site>","node":"<node>","command":["crictl-ps"]}' \ "$XCSH_API_URL/api/operate/namespaces/system/sites/<site>/vpm/debug/<node>/exec-user"{ "return_code": 0, "output": "CONTAINER IMAGE CREATED STATE ..." }Gli argomenti sono elementi separati dell’array, non un’unica stringa:
{ "command": ["journalctl", "-u", "vpm", "-n", "200"] }GLOBAL — a livello di sito, e con un trasporto completamente diverso 2 comandi
Sezione intitolata “GLOBAL — a livello di sito, e con un trasporto completamente diverso ”health e diagnosis sono gli unici due. Sono richieste GET verso un percorso
global, non accettano argomenti e restituiscono JSON strutturato invece di testo da
terminale.
curl -sS -H "Authorization: APIToken $XCSH_API_TOKEN" \ "$XCSH_API_URL/api/operate/namespaces/system/sites/<site>/vpm/debug/global/health" | jq .Exec — il tier privilegiato 1 comando su questa build
Sezione intitolata “Exec — il tier privilegiato ”Un endpoint separato, e il tier è imposto anziché indicativo: exec rifiuta un comando
ExecUser con lo stesso messaggio command not supported. Ogni membro modifica il nodo
oppure legge un marcatore di stato.
Nella build in uso da questo tenant, il tier contiene solo ip-link-set. Le build più
recenti aggiungono systemctl-restart-NetworkManager, systemctl-restart-crio,
systemctl-restart-kubelet, systemctl-start-crio-prune e tre comandi
marker-exists-*.
Individuare i nomi del sito e del nodo
Sezione intitolata “Individuare i nomi del sito e del nodo”Il nome del nodo è il nome della VM Azure, e list-service è un modo economico per
confermarlo insieme ai servizi in esecuzione su di esso:
curl -sS -H "Authorization: APIToken $XCSH_API_TOKEN" \ "$XCSH_API_URL/api/operate/namespaces/system/sites/<site>/vpm/debug/global/list-service" \ | jq -r '[.service[].node] | unique'["", "f5-xc-ce-vm-01"]Alcuni servizi riportano un nome di nodo vuoto, quindi una stringa vuota in quell’elenco è un
artefatto della risposta e non un secondo nodo. list-service non fa nemmeno parte del catalogo
di 34 comandi: è un endpoint global che il catalogo non pubblicizza, motivo per cui è
documentato qui e non nel riferimento dei comandi.
Riprodurre le acquisizioni di questo repository
Sezione intitolata “Riprodurre le acquisizioni di questo repository”Ogni pagina di comando incorpora output acquisito da scripts/capture-sitecli.sh, che
implementa tutte e tre le regole sopra descritte.
-
Puntatelo a un tenant. Legge
XCSH_API_URLeXCSH_API_TOKEN, oppure ricade sul contestoxcshattivo. -
Aggiornate il catalogo e verificate che il nodo non sia cambiato sotto la documentazione:
Terminal window bash scripts/capture-sitecli.sh --checkQuesto confronta soltanto il catalogo committato e la build del software. Segnala una modifica della build separatamente dai comandi aggiunti o rimossi.
-
Ripetete l’acquisizione quando desiderate evidenze aggiornate:
Terminal window bash scripts/capture-sitecli.sh