- Accueil
- Réseau multi-cloud
- Customer Edge diagnostics
- Reaching a Customer Edge
- API de débogage
API de débogage
Capturé le 2026-07-28 depuis un CE de ce déploiement. sitecli/capture-manifest.json
enregistre de quel nœud il s’agit, et scripts/capture-sitecli.sh --check revérifie la
surface de commandes face à un CE en fonctionnement.
L’API vpm/debug exécute des commandes Site CLI sur un nœud enregistré et renvoie leur
sortie. Tout ce qui suit a été établi face à un nœud réel ; rien de tout cela n’est
publié en amont.
Le catalogue de commandes est auto-descriptif
Section intitulée « Le catalogue de commandes est auto-descriptif »Demandez au nœud ce qu’il prend en charge en envoyant un POST à exec-user avec la clé
command omise :
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 réponse est un objet JSON indexé par nom de commande :
{ "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)"]}Chaque entrée est [category, tier, exampleArgument?, scope?], et ces champs ne sont
pas de la documentation — ils déterminent la manière dont la commande doit être appelée.
Trois transports, choisis par l’entrée du catalogue
Section intitulée « Trois transports, choisis par l’entrée du catalogue »| Condition | Méthode et chemin | Corps | Renvoie |
|---|---|---|---|
scope vaut GLOBAL | GET .../vpm/debug/global/<cmd> | aucun | JSON |
tier vaut ExecUser | POST .../vpm/debug/<node>/exec-user | tableau command | texte |
tier vaut Exec | POST .../vpm/debug/<node>/exec | tableau command | texte |
ExecUser — le niveau en lecture seule 31 commandes
Section intitulée « ExecUser — le niveau en lecture seule »Le cas courant. Passez la commande et ses arguments sous forme de tableau, le nom de la commande en premier :
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 ..." }Les arguments sont des éléments de tableau distincts, et non une chaîne unique :
{ "command": ["journalctl", "-u", "vpm", "-n", "200"] }GLOBAL — à l’échelle du site, et un transport entièrement différent 2 commandes
Section intitulée « GLOBAL — à l’échelle du site, et un transport entièrement différent »health et diagnosis sont les deux seules. Il s’agit de requêtes GET vers un chemin
global, elles ne prennent aucun argument et renvoient du JSON structuré plutôt que du
texte de terminal.
curl -sS -H "Authorization: APIToken $XCSH_API_TOKEN" \ "$XCSH_API_URL/api/operate/namespaces/system/sites/<site>/vpm/debug/global/health" | jq .Exec — le niveau privilégié 1 commande sur cette build
Section intitulée « Exec — le niveau privilégié »Un endpoint distinct, et le niveau est appliqué plutôt qu’indicatif : exec rejette
une commande ExecUser avec le même message command not supported. Chaque membre
soit modifie le nœud, soit lit un marqueur d’état.
Sur la build que ce tenant exécute, le niveau ne contient que ip-link-set. Des builds
plus récentes ajoutent systemctl-restart-NetworkManager, systemctl-restart-crio,
systemctl-restart-kubelet, systemctl-start-crio-prune et trois commandes
marker-exists-*.
Trouver les noms de site et de nœud
Section intitulée « Trouver les noms de site et de nœud »Le nom du nœud est le nom de la VM Azure, et list-service est un moyen économique de le
confirmer, en même temps que les services qui y sont exécutés :
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"]Certains services signalent un nom de nœud vide ; une chaîne vide dans cette liste est donc un
artéfact de la réponse plutôt qu’un second nœud. list-service ne figure pas non plus dans le
catalogue de 34 commandes : c’est un endpoint global que le catalogue n’annonce pas, ce qui
explique pourquoi il est documenté ici et non dans la référence des commandes.
Reproduire les captures de ce dépôt
Section intitulée « Reproduire les captures de ce dépôt »Chaque page de commande intègre la sortie capturée par scripts/capture-sitecli.sh, qui
met en œuvre les trois règles ci-dessus.
-
Pointez-le vers un tenant. Il lit
XCSH_API_URLetXCSH_API_TOKEN, ou revient au contextexcshactif. -
Actualisez le catalogue et confirmez que le nœud n’a pas changé sous la documentation :
Fenêtre de terminal bash scripts/capture-sitecli.sh --checkCela compare uniquement le catalogue validé et la build logicielle. Il signale un changement de build séparément des commandes ajoutées ou supprimées.
-
Refaites une capture lorsque vous souhaitez des preuves récentes :
Fenêtre de terminal bash scripts/capture-sitecli.sh