Référence
CLI · sihactl
La CLI d'exploitation. Tout ce que vous faites sur un nœud SiHA passe par elle, en mTLS.
sihactl est la seule voie d’accès. L’appliance n’a pas de shell ; la CLI
dialogue avec apid sur :6443 et s’authentifie avec un certificat client.
Votre identité provient d’un sihaconfig (~/.siha/config par défaut ; voir la
PKI ci-dessous) :
sihactl --sihaconfig ~/.siha/config --addr <node-ip>:6443 <command>
Avec un contexte actif, --sihaconfig/--addr sont optionnels (le contexte
fournit les deux). Un raccourci courant consiste à créer un alias du préfixe de
connexion :
S="sihactl --sihaconfig ~/.siha/config --addr 192.168.5.10:6443"
$S health
Groupes de commandes et mode maintenance
sihactl --help organise les commandes en sept groupes : RESOURCES, CONFIG,
OBSERVE, LIFECYCLE, NODE, ADOPTION & IDENTITY et OTHER. Les commandes
marquées ✎ fonctionnent avant l’adoption (mode maintenance — avant que le mTLS
soit actif). Toutes les autres nécessitent un nœud préalablement adopté :
✎ = works before adoption (maintenance mode). Everything else needs mTLS — run 'sihactl adopt' first.
Vérifier l’état du nœud
sihactl status --addr <node-ip>:6443 # vue d'ensemble : adopté / maintenance / injoignable
status sonde d’abord avec votre identité mTLS, puis retombe sur le canal de
maintenance ouvert — elle répond donc à n’importe quel stade du cycle d’adoption.
Utilisez-la pour confirmer qu’un nœud est adopté avant de lancer health ou
config apply.
Ressources (verbes génériques)
Le CRUD est agnostique au type : les mêmes quatre verbes fonctionnent sur chaque
type de ressource, résolus via le runtime. Les alias courts (if, acl,
natlb, …) et -o yaml sont pris en charge.
$S get interfaces # list interfaces (table)
$S get acl edge-in -o yaml # one resource as YAML
$S edit interface ext # open in $EDITOR, apply on save
$S watch interfaces # stream changes
$S delete acl edge-in # remove a resource
$S get rd # list every resource type served
Les types de statut appartenant à un contrôleur sont en lecture seule — le serveur rejette toute écriture les concernant.
Bundles de configuration
Appliquez et gérez des répertoires entiers de manifestes, avec validation inter-ressources et historique complet.
$S config validate -f siha-config/ # dry-run + cross-resource checks
$S config apply -f siha-config/ # apply the bundle
$S config history # list checkpoints
$S config diff <a> <b> # diff two checkpoints
$S config save "before-bgp" # named checkpoint
$S config rollback <checkpoint> # revert to a checkpoint
Inspection du dataplane
$S vpp cli "show interface" # run a raw vppctl command
$S vpp routes # the VPP FIB
$S vpp neighbors # ARP / ND table
$S vpp capture -i ext -f "tcp port 80" # COSI-bound packet capture
vpp capture ne span que les interfaces déclarées comme ressources Interface —
il résout chaque -i <id> contre l’état du runtime. Le span est un miroir de port
physique : il ne décapsule jamais, alors utilisez un filtre -f pour affiner.
Santé, métriques & cycle de vie
$S health # node health summary
$S version # build + image version
$S perf show # a snapshot of live metrics
$S perf watch --id=ext # stream metrics for a selector
$S upgrade <svc> --binary bin/<svc> # hot-swap a daemon (debug image)
$S web # serve the embedded read-only UI
Identité & PKI (côté hôte)
Votre identité de flotte tient en deux fichiers (voir Prise en main) : un secret (la racine de CA, pour l’adoption) et un sihaconfig (votre certificat admin, pour le jour 2). Ceux-ci s’exécutent localement — aucun gRPC n’est impliqué :
sihactl gen secret prod -o siha-secret.yaml # mint the fleet CA → secret
sihactl gen context prod --secret siha-secret.yaml \ # derive an admin sihaconfig context
--endpoint <node-ip>:6443
sihactl context use prod # switch the active context
Pas sûr qu’un type existe ?
sihactl get rdest la source de vérité — il liste chaque type de ressource, ses alias et ses colonnes, directement depuis le nœud.