Condividi tramite


Risolvere i problemi relativi a un BMM usando az networkcloud baremetalmachine run-read-command

Potrebbero verificarsi situazioni in cui un utente deve analizzare e risolvere i problemi relativi a un computer bare metal locale (BMM). Operatore Nexus fornisce az networkcloud baremetalmachine run-read-command in modo che gli utenti possano eseguire un elenco curato di comandi di sola lettura per ottenere informazioni da un BMM.

Il comando genera un file di output contenente i risultati dell'esecuzione del comando run-read. Per impostazione predefinita, i dati vengono inviati all'account di archiviazione di Cluster Manager. È disponibile anche un metodo di anteprima in cui gli utenti possono configurare la risorsa cluster con un account di archiviazione e un'identità che ha accesso all'account di archiviazione per ricevere l'output.

Prerequisiti

  1. Installare la versione più recente delle estensioni dell'interfaccia della riga di comando appropriate
  2. Assicurarsi che il BMM di destinazione abbia poweredState impostato su On e readyState impostato su True
  3. Ottenere il nome del gruppo di risorse gestite (cluster_MRG) creato per la risorsa Cluster

Inviare l'output del comando a un account di archiviazione specificato dall'utente

Vedere Supporto del cluster Nexus dell'operatore di Azure per le identità gestite e le risorse fornite dall'utente

Cancellare commandOutputSettings del cluster

Per modificare il cluster da un'identità assegnata dall'utente a un'identità assegnata dal sistema, commandOutputSettings deve prima essere cancellato usando il comando nella sezione successiva, quindi impostare usando questo comando.

CommandOutputSettings può essere cancellato, indirizzando l'output di run-data-extract all'archiviazione di Gestione cluster. Tuttavia, non è consigliabile perché è meno sicuro e l'opzione verrà rimossa in una versione futura.

Tuttavia, commandOutputSettings deve essere cancellato se si passa da un'identità assegnata dall'utente a un'identità assegnata dal sistema.

Usare questo comando per cancellare CommandOutputSettings:

az rest --method patch \
  --url  "https://management.azure.com/subscriptions/<subscription>/resourceGroups/<cluster-resource-group>/providers/Microsoft.NetworkCloud/clusters/<cluster-name>?api-version=2024-08-01-preview" \
  --body '{"properties": {"commandOutputSettings":null}}'

METODO DEPRECATO: verificare l'accesso all'account di archiviazione di Cluster Manager

Importante

L'account di archiviazione di Cluster Manager è destinato alla rimozione nel mese di aprile 2025 al più recente. Se si usa questo metodo oggi per l'output dei comandi, è consigliabile eseguire la conversione in usando un account di archiviazione fornito dall'utente.

Se si usa il metodo di archiviazione di Cluster Manager, verificare di avere accesso all'account di archiviazione di Cluster Manager:

  1. Dal portale di Azure passare all'account di archiviazione di Gestione cluster.
  2. Nei dettagli dell'account di archiviazione selezionare Browser archiviazione dal menu di spostamento a sinistra.
  3. Nei dettagli del browser archiviazione selezionare Contenitori BLOB.
  4. Se viene visualizzato l'errore 403 This request is not authorized to perform this operation. durante l'accesso all'account di archiviazione, è necessario aggiornare le impostazioni del firewall dell'account di archiviazione in modo che includano l'IP pubblico.
  5. Richiedere l'accesso creando un ticket di supporto tramite il portale nella risorsa Gestione cluster. Specificare l'IP pubblico che richiede l'accesso.

Eseguire un comando run-read

Il comando run-read consente di eseguire un comando sul BMM senza che nulla venga modificato. Alcuni comandi contengono più di una parola o richiedono un argomento per funzionare. Questi comandi sono così per distinguerli da quelli che possono apportare modifiche. Ad esempio, il comando run-read può usare kubectl get, ma non kubectl apply. Quando si usano questi comandi, è necessario inserire tutte le parole nel campo "comando". Ad esempio, {command:'kubectl get',arguments:[nodes]} è corretto, mentre {command:kubectl,arguments:[get,nodes]} è errato.

Si noti anche che alcuni comandi iniziano con nc-toolbox nc-toolbox-runread e devono essere immessi come mostrato. nc-toolbox-runread è un'immagine contenitore speciale che include più strumenti che non sono installati nell'host bare metal, ad esempio ipmitool e racadm.

Alcuni dei comandi run-read richiedono argomenti specifici per applicare le funzionalità di sola lettura dei comandi. Un esempio di comando run-read che richiede argomenti specifici è il comando Mellanox consentito mstconfig, che richiede l'argomento query per applicare la sola lettura.

Avviso

Microsoft non fornisce o supporta chiamate API Operator Nexus che prevedono la fornitura di nome utente e/o password in testo non crittografato. Si noti che tutti i valori inviati vengono registrati e vengono considerati segreti esposti, che devono essere ruotati e revocati. Il metodo documentato da Microsoft per l'uso sicuro dei segreti consiste nell'archiviarli in un insieme di credenziali delle chiavi di Azure. In caso di domande o dubbi specifici, inviare una richiesta tramite il portale di Azure.

Questo elenco mostra i comandi che è possibile usare. I comandi in *italics* non possono avere arguments; il resto può.

  • arp
  • brctl show
  • dmidecode
  • fdisk -l
  • host
  • hostname
  • ifconfig -a
  • ifconfig -s
  • ip address show
  • ip link show
  • ip maddress show
  • ip route show
  • journalctl
  • kubectl api-resources
  • kubectl api-versions
  • kubectl describe
  • kubectl get
  • kubectl logs
  • mount
  • ping
  • ss
  • tcpdump
  • traceroute
  • uname
  • ulimit -a
  • uptime
  • timedatectl status
  • hostnamectl status
  • nc-toolbox nc-toolbox-runread ipmitool channel authcap
  • nc-toolbox nc-toolbox-runread ipmitool channel info
  • nc-toolbox nc-toolbox-runread ipmitool chassis status
  • nc-toolbox nc-toolbox-runread ipmitool chassis power status
  • nc-toolbox nc-toolbox-runread ipmitool chassis restart cause
  • nc-toolbox nc-toolbox-runread ipmitool chassis poh
  • nc-toolbox nc-toolbox-runread ipmitool dcmi power get_limit
  • nc-toolbox nc-toolbox-runread ipmitool dcmi sensors
  • nc-toolbox nc-toolbox-runread ipmitool dcmi asset_tag
  • nc-toolbox nc-toolbox-runread ipmitool dcmi get_mc_id_string
  • nc-toolbox nc-toolbox-runread ipmitool dcmi thermalpolicy get
  • nc-toolbox nc-toolbox-runread ipmitool dcmi get_temp_reading
  • nc-toolbox nc-toolbox-runread ipmitool dcmi get_conf_param
  • nc-toolbox nc-toolbox-runread ipmitool delloem lcd info
  • nc-toolbox nc-toolbox-runread ipmitool delloem lcd status
  • nc-toolbox nc-toolbox-runread ipmitool delloem mac list
  • nc-toolbox nc-toolbox-runread ipmitool delloem mac get
  • nc-toolbox nc-toolbox-runread ipmitool delloem lan get
  • nc-toolbox nc-toolbox-runread ipmitool delloem powermonitor powerconsumption
  • nc-toolbox nc-toolbox-runread ipmitool delloem powermonitor powerconsumptionhistory
  • nc-toolbox nc-toolbox-runread ipmitool delloem powermonitor getpowerbudget
  • nc-toolbox nc-toolbox-runread ipmitool delloem vflash info card
  • nc-toolbox nc-toolbox-runread ipmitool echo
  • nc-toolbox nc-toolbox-runread ipmitool ekanalyzer print
  • nc-toolbox nc-toolbox-runread ipmitool ekanalyzer summary
  • nc-toolbox nc-toolbox-runread ipmitool fru print
  • nc-toolbox nc-toolbox-runread ipmitool fwum info
  • nc-toolbox nc-toolbox-runread ipmitool fwum status
  • nc-toolbox nc-toolbox-runread ipmitool fwum tracelog
  • nc-toolbox nc-toolbox-runread ipmitool gendev list
  • nc-toolbox nc-toolbox-runread ipmitool hpm rollbackstatus
  • nc-toolbox nc-toolbox-runread ipmitool hpm selftestresult
  • nc-toolbox nc-toolbox-runread ipmitool ime help
  • nc-toolbox nc-toolbox-runread ipmitool ime info
  • nc-toolbox nc-toolbox-runread ipmitool isol info
  • nc-toolbox nc-toolbox-runread ipmitool lan print
  • nc-toolbox nc-toolbox-runread ipmitool lan alert print
  • nc-toolbox nc-toolbox-runread ipmitool lan stats get
  • nc-toolbox nc-toolbox-runread ipmitool mc bootparam get
  • nc-toolbox nc-toolbox-runread ipmitool mc chassis poh
  • nc-toolbox nc-toolbox-runread ipmitool mc chassis policy list
  • nc-toolbox nc-toolbox-runread ipmitool mc chassis power status
  • nc-toolbox nc-toolbox-runread ipmitool mc chassis status
  • nc-toolbox nc-toolbox-runread ipmitool mc getenables
  • nc-toolbox nc-toolbox-runread ipmitool mc getsysinfo
  • nc-toolbox nc-toolbox-runread ipmitool mc guid
  • nc-toolbox nc-toolbox-runread ipmitool mc info
  • nc-toolbox nc-toolbox-runread ipmitool mc restart cause
  • nc-toolbox nc-toolbox-runread ipmitool mc watchdog get
  • nc-toolbox nc-toolbox-runread ipmitool bmc bootparam get
  • nc-toolbox nc-toolbox-runread ipmitool bmc chassis poh
  • nc-toolbox nc-toolbox-runread ipmitool bmc chassis policy list
  • nc-toolbox nc-toolbox-runread ipmitool bmc chassis power status
  • nc-toolbox nc-toolbox-runread ipmitool bmc chassis status
  • nc-toolbox nc-toolbox-runread ipmitool bmc getenables
  • nc-toolbox nc-toolbox-runread ipmitool bmc getsysinfo
  • nc-toolbox nc-toolbox-runread ipmitool bmc guid
  • nc-toolbox nc-toolbox-runread ipmitool bmc info
  • nc-toolbox nc-toolbox-runread ipmitool bmc restart cause
  • nc-toolbox nc-toolbox-runread ipmitool bmc watchdog get
  • nc-toolbox nc-toolbox-runread ipmitool nm alert get
  • nc-toolbox nc-toolbox-runread ipmitool nm capability
  • nc-toolbox nc-toolbox-runread ipmitool nm discover
  • nc-toolbox nc-toolbox-runread ipmitool nm policy get policy_id
  • nc-toolbox nc-toolbox-runread ipmitool nm policy limiting
  • nc-toolbox nc-toolbox-runread ipmitool nm statistics
  • nc-toolbox nc-toolbox-runread ipmitool nm suspend get
  • nc-toolbox nc-toolbox-runread ipmitool nm threshold get
  • nc-toolbox nc-toolbox-runread ipmitool pef
  • nc-toolbox nc-toolbox-runread ipmitool picmg addrinfo
  • nc-toolbox nc-toolbox-runread ipmitool picmg policy get
  • nc-toolbox nc-toolbox-runread ipmitool power status
  • nc-toolbox nc-toolbox-runread ipmitool sdr elist
  • nc-toolbox nc-toolbox-runread ipmitool sdr get
  • nc-toolbox nc-toolbox-runread ipmitool sdr info
  • nc-toolbox nc-toolbox-runread ipmitool sdr list
  • nc-toolbox nc-toolbox-runread ipmitool sdr type
  • nc-toolbox nc-toolbox-runread ipmitool sel elist
  • nc-toolbox nc-toolbox-runread ipmitool sel get
  • nc-toolbox nc-toolbox-runread ipmitool sel info
  • nc-toolbox nc-toolbox-runread ipmitool sel list
  • nc-toolbox nc-toolbox-runread ipmitool sel time get
  • nc-toolbox nc-toolbox-runread ipmitool sensor get
  • nc-toolbox nc-toolbox-runread ipmitool sensor list
  • nc-toolbox nc-toolbox-runread ipmitool session info
  • nc-toolbox nc-toolbox-runread ipmitool sol info
  • nc-toolbox nc-toolbox-runread ipmitool sol payload status
  • nc-toolbox nc-toolbox-runread ipmitool user list
  • nc-toolbox nc-toolbox-runread ipmitool user summary
  • nc-toolbox nc-toolbox-runread racadm arp
  • nc-toolbox nc-toolbox-runread racadm coredump
  • nc-toolbox nc-toolbox-runread racadm diagnostics
  • nc-toolbox nc-toolbox-runread racadm eventfilters get
  • nc-toolbox nc-toolbox-runread racadm fcstatistics
  • nc-toolbox nc-toolbox-runread racadm get
  • nc-toolbox nc-toolbox-runread racadm getconfig
  • nc-toolbox nc-toolbox-runread racadm gethostnetworkinterfaces
  • nc-toolbox nc-toolbox-runread racadm getled
  • nc-toolbox nc-toolbox-runread racadm getniccfg
  • nc-toolbox nc-toolbox-runread racadm getraclog
  • nc-toolbox nc-toolbox-runread racadm getractime
  • nc-toolbox nc-toolbox-runread racadm getsel
  • nc-toolbox nc-toolbox-runread racadm getsensorinfo
  • nc-toolbox nc-toolbox-runread racadm getssninfo
  • nc-toolbox nc-toolbox-runread racadm getsvctag
  • nc-toolbox nc-toolbox-runread racadm getsysinfo
  • nc-toolbox nc-toolbox-runread racadm gettracelog
  • nc-toolbox nc-toolbox-runread racadm getversion
  • nc-toolbox nc-toolbox-runread racadm hwinventory
  • nc-toolbox nc-toolbox-runread racadm ifconfig
  • nc-toolbox nc-toolbox-runread racadm inlettemphistory get
  • nc-toolbox nc-toolbox-runread racadm jobqueue view
  • nc-toolbox nc-toolbox-runread racadm lclog view
  • nc-toolbox nc-toolbox-runread racadm lclog viewconfigresult
  • nc-toolbox nc-toolbox-runread racadm license view
  • nc-toolbox nc-toolbox-runread racadm netstat
  • nc-toolbox nc-toolbox-runread racadm nicstatistics
  • nc-toolbox nc-toolbox-runread racadm ping
  • nc-toolbox nc-toolbox-runread racadm ping6
  • nc-toolbox nc-toolbox-runread racadm racdump
  • nc-toolbox nc-toolbox-runread racadm sslcertview
  • nc-toolbox nc-toolbox-runread racadm swinventory
  • nc-toolbox nc-toolbox-runread racadm systemconfig getbackupscheduler
  • nc-toolbox nc-toolbox-runread racadm systemperfstatistics (argomento PeakReset NON consentito)
  • nc-toolbox nc-toolbox-runread racadm techsupreport getupdatetime
  • nc-toolbox nc-toolbox-runread racadm traceroute
  • nc-toolbox nc-toolbox-runread racadm traceroute6
  • nc-toolbox nc-toolbox-runread racadm usercertview
  • nc-toolbox nc-toolbox-runread racadm vflashsd status
  • nc-toolbox nc-toolbox-runread racadm vflashpartition list
  • nc-toolbox nc-toolbox-runread racadm vflashpartition status -a
  • nc-toolbox nc-toolbox-runread mstregdump
  • nc-toolbox nc-toolbox-runread mstconfig (richiede query arg)
  • nc-toolbox nc-toolbox-runread mstflint (richiede query arg)
  • nc-toolbox nc-toolbox-runread mstlink (richiede query arg)
  • nc-toolbox nc-toolbox-runread mstfwmanager (richiede query arg)
  • nc-toolbox nc-toolbox-runread mlx_temp

La sintassi del comando per un singolo comando senza argomenti è la seguente, usando hostname come esempio:

az networkcloud baremetalmachine run-read-command --name "<machine-name>"
    --limit-time-seconds "<timeout>" \
    --commands "[{command:hostname}]" \
    --resource-group "<cluster_MRG>" \
    --subscription "<subscription>"
  • Il --commands parametro accetta sempre un elenco di comandi, anche se è presente un solo comando.
  • È possibile fornire più comandi in formato JSON usando la notazione abbreviata dell'interfaccia della riga di comando di Azure.
  • Qualsiasi spazio vuoto deve essere racchiuso tra virgolette singole.
  • Qualsiasi argomento per ogni comando deve essere fornito anche come elenco, come illustrato negli esempi seguenti.
--commands "[{command:hostname},{command:'nc-toolbox nc-toolbox-runread racadm ifconfig'}]"
--commands "[{command:hostname},{command:'nc-toolbox nc-toolbox-runread racadm getsysinfo',arguments:[-c]}]"
--commands "[{command:ping,arguments:[198.51.102.1,-c,3]}]"

Questi comandi possono essere a esecuzione prolungata, quindi è consigliabile impostare --limit-time-seconds almeno su 600 secondi (10 minuti). L'esecuzione di più comandi potrebbe richiedere più di 10 minuti.

Questo comando viene eseguito in modo sincrono. Per non dover attendere il completamento del comando, specificare le opzioni --no-wait --debug. Per altre informazioni, vedere come tenere traccia delle operazioni asincrone.

Quando viene fornito un argomento facoltativo --output-directory, il risultato dell'output viene scaricato ed estratto nella directory locale.

Avviso

L'uso dell'argomento --output-directory sovrascrive tutti i file nella directory locale con lo stesso nome dei nuovi file creati.

Questo esempio esegue un 'kubectl get pods'

az networkcloud baremetalmachine run-read-command --name "<bareMetalMachineName>" \
   --limit-time-seconds 60 \
   --commands "[{command:'kubectl get',arguments:[pods,-n,nc-system]}]" \
   --resource-group "<cluster_MRG>" \
   --subscription "<subscription>"

Questo esempio esegue il comando hostname e un comando ping

az networkcloud baremetalmachine run-read-command --name "<bareMetalMachineName>" \
    --limit-time-seconds 60 \
    --commands "[{command:hostname},{command:ping,arguments:[198.51.102.1,-c,3]}]" \
    --resource-group "<cluster_MRG>" \
    --subscription "<subscription>"

Questo esempio esegue il comando racadm getsysinfo -c

az networkcloud baremetalmachine run-read-command --name "<bareMetalMachineName>" \
    --limit-time-seconds 60 \
    --commands "[{command:'nc-toolbox nc-toolbox-runread racadm getsysinfo',arguments:[-c]}]" \
    --resource-group "<cluster_MRG>" \
    --subscription "<subscription>"

Controllare lo stato del comando e visualizzare l'output in un account di archiviazione specificato dall'utente

È riportato l'output di esempio. Stampa i primi 4.000 caratteri del risultato sullo schermo per praticità e fornisce un collegamento di breve durata al BLOB di archiviazione contenente il risultato dell'esecuzione del comando. È possibile usare il collegamento per scaricare il file di output compresso (tar.gz). Per accedere all'output, gli utenti devono avere l'accesso appropriato al BLOB di archiviazione. Per informazioni sull'assegnazione di ruoli agli account di archiviazione, vedere Assegnare un ruolo di Azure per l'accesso ai dati BLOB.

  ====Action Command Output====
  + hostname
  rack1compute01
  + ping 198.51.102.1 -c 3
  PING 198.51.102.1 (198.51.102.1) 56(84) bytes of data.

  --- 198.51.102.1 ping statistics ---
  3 packets transmitted, 0 received, 100% packet loss, time 2049ms

  ================================
  Script execution result can be found in storage account:
  https://<storage_account_name>.blob.core.windows.net/bmm-run-command-output/a8e0a5fe-3279-46a8-b995-51f2f98a18dd-action-bmmrunreadcmd.tar.gz?se=2023-04-14T06%3A37%3A00Z&sig=XXX&sp=r&spr=https&sr=b&st=2023-04-14T02%3A37%3A00Z&sv=2019-12-12

DEPRECATO: Come visualizzare l'output di un az networkcloud baremetalmachine run-read-command oggetto nell'account di archiviazione di Cluster Manager

Questa guida illustra come accedere al file di output creato nell'account di archiviazione di Gestione cluster quando viene eseguito az networkcloud baremetalmachine run-read-command su un server. Il nome del file viene identificato nell'output dello stato az rest.

  1. Aprire il gruppo di risorse gestite Gestione cluster per il cluster in cui è ospitato il server e quindi selezionare l'account di archiviazione.

  2. Nei dettagli dell'account di archiviazione selezionare Browser archiviazione dal menu di spostamento a sinistra.

  3. Nei dettagli del browser archiviazione selezionare Contenitori BLOB.

  4. Selezionare il contenitore BLOB baremetal-run-command-output.

  5. Se l'account di archiviazione è bloccato, viene visualizzato l'errore 403 This request is not authorized to perform this operation. a causa delle restrizioni di rete o del firewall. Per le procedure per verificare l'accesso, vedere le sezioni archiviazione di Gestione cluster o archiviazione gestita dal cliente.

  6. Selezionare il file di output dal comando run-read. Il nome file può essere identificato dal comando az rest --method get. Inoltre, il timestamp Ultima modifica corrisponde a quando il comando è stato eseguito.

  7. È possibile gestire e scaricare il file di output dalla finestra Panoramica.