Résoudre des problèmes de BMM en utilisant la commande az networkcloud baremetalmachine run-read-command

Il peut exister des cas où un utilisateur doit enquêter et résoudre des problèmes liés à une BMM locale. Azure Operator Nexus fournit la commande az networkcloud baremetalmachine run-read-command afin que les utilisateurs puissent exécuter une liste organisée de commandes en lecture seule pour obtenir les informations d’une BMM.

L’exécution de la commande produit un fichier de sortie contenant les résultats qui se trouvent dans le compte de stockage du gestionnaire de cluster.

Prérequis

  1. Installer la dernière version des extensions de l’interface CLI appropriées
  2. Veiller à ce que la BMM cible ait son poweredState défini sur On et son readyState défini sur True
  3. Obtenir le nom du groupe de ressources managé (cluster_MRG) que vous avez créé pour la ressource Cluster

Vérifier l’accès au compte de stockage

Vérifiez que vous avez accès au compte de stockage du Gestionnaire de cluster

  1. Dans le portail Azure, accédez au compte de stockage du Gestionnaire de cluster.
  2. Dans les détails du compte de stockage, sélectionnez Navigateur de stockage à partir du menu de navigation sur le côté gauche.
  3. Dans les détails du navigateur de stockage, sélectionnez Conteneurs d’objets blob.
  4. Si vous rencontrez une erreur 403 This request is not authorized to perform this operation. lors de l’accès au compte de stockage, c’est que les paramètres de pare-feu du compte de stockage doivent être mis à jour de façon à inclure l’adresse IP publique.
  5. Demandez l’accès en créant un ticket de support via le portail sur la ressource Gestionnaire de cluster. Fournissez l’adresse IP publique qui nécessite un accès.

Exécution d’une commande run-read

La commande run-read vous permet d’exécuter une commande qui ne change rien sur le BMM. Certaines commandes ont plus d’un mot ou doivent avoir un argument pour fonctionner. Ces commandes sont créées de cette manière pour les séparer de celles qui peuvent modifier des éléments. Par exemple, la commande run-read-command peut utiliser kubectl get, mais pas kubectl apply. Lorsque vous utilisez ces commandes, vous devez récupérer tous les mots dans le champ « command ». Par exemple, {"command":"kubectl get","arguments":["nodes"]} est correct, {"command":"kubectl","arguments":["get","nodes"]} est incorrect.

Notez également que certaines commandes commencent par nc-toolbox nc-toolbox-runread et que vous devez les entrer comme indiqué. nc-toolbox-runread est une image conteneur qui inclut d’autres outils qui ne sont pas installés sur l’hôte nu, tels que ipmitool et racadm.

Certaines commandes run-read nécessitent que des arguments spécifiques soient fournis pour appliquer des fonctionnalités en lecture seule des commandes. Un exemple de commandes run-read qui nécessitent des arguments spécifiques est la commande Mellanox autorisée mstconfig, qui nécessite que l’argument query soit fourni pour appliquer la lecture seule.

Avertissement

Microsoft ne fournit ni ne prend en charge les appels d’API Operator Nexus qui nécessitent que le nom d’utilisateur et/ou le mot de passe en clair soient fournis. Notez que les valeurs envoyées sont journalisées et considérées comme des secrets exposés, qui doivent donc être permutés et révoqués. La méthode documentée par Microsoft pour utiliser des secrets de façon sécurisée consiste à les stocker dans un coffre Azure Key Vault. Si vous avez des questions ou des préoccupations spécifiques, envoyez une demande via le portail Azure.

La liste ci-dessous montre les commandes que vous pouvez utiliser. Les commandes dans *italics* ne peuvent pas avoir arguments, les autres peuvent.

  • 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
  • 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 (l’argument PeakReset n’est PAS autorisé)
  • 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 (nécessite l’arg query )
  • nc-toolbox nc-toolbox-runread mstflint (nécessite l’arg query )
  • nc-toolbox nc-toolbox-runread mstlink (nécessite l’arg query )
  • nc-toolbox nc-toolbox-runread mstfwmanager (nécessite l’arg query )
  • nc-toolbox nc-toolbox-runread mlx_temp

Syntaxe de la commande :

az networkcloud baremetalmachine run-read-command --name "<machine-name>"
    --limit-time-seconds "<timeout>" \
    --commands '[{"command":"<command1>"},{"command":"<command2>","arguments":["<arg1>","<arg2>"]}]' \
    --resource-group "<cluster_MRG>" \
    --subscription "<subscription>"

De nombreuses commandes peuvent être fournies au format JSON dans l’option --commands.

Pour une commande avec plusieurs arguments, fournissez-les sous forme de liste au paramètre arguments. Consultez Syntaxe raccourcie de l’interface Azure CLI pour obtenir des instructions sur la construction de la structure --commands.

L’exécution de ces commandes peut être longue, c’est pourquoi la recommandation est de définir --limit-time-seconds sur au moins 600 secondes (10 minutes). L’exécution de plusieurs extraits risque de prendre plus de 10 minutes.

Cette commande s’exécute de manière synchrone. Si vous souhaitez ignorer l’attente relative à l’achèvement de la commande, spécifiez les options --no-wait --debug. Pour obtenir plus d’informations, consultez comment effectuer le suivi des opérations asynchrones.

Quand un argument facultatif --output-directory est fourni, le résultat de sortie est téléchargé et extrait dans le répertoire.

Cet exemple exécute la commande hostname et une commande 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>"

Cet exemple exécute la commande 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>"

Vérification de l’état de la commande et affichage de la sortie

Un exemple de sortie est montré. Elle imprime les 4 000 premiers caractères du résultat à l’écran pour des raisons de commodité et fournit un lien de courte durée vers l’objet blob de stockage contenant le résultat d’exécution de la commande. Vous pouvez utiliser le lien pour télécharger le fichier de sortie compressé (tar.gz).

  ====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

Comment afficher la sortie d’une commande az networkcloud baremetalmachine run-read-command dans le compte de stockage du gestionnaire de cluster

Ce guide vous accompagne pour accéder au fichier de sortie créé dans le compte de stockage du gestionnaire de cluster quand une commande az networkcloud baremetalmachine run-read-command est exécutée sur un serveur. Le nom du fichier est identifié dans la sortie d’état az rest.

  1. Ouvrez le groupe de ressources managées du gestionnaire de cluster pour le cluster dans lequel le serveur est hébergé, puis sélectionnez le compte de stockage.

  2. Dans les détails du compte de stockage, sélectionnez Navigateur de stockage à partir du menu de navigation sur le côté gauche.

  3. Dans les détails du navigateur de stockage, sélectionnez Conteneurs d’objets blob.

  4. Sélectionnez le conteneur d’objets blob baremetal-run-command-output.

  5. Le compte de stockage peut être verrouillé et entraîner une erreur 403 This request is not authorized to perform this operation. en raison de restrictions du réseau ou du pare-feu. Reportez-vous à Vérifier l’accès au compte de stockage pour connaître la procédure de vérification et de demande d’accès.

  6. Sélectionnez le fichier de sortie à partir de la commande run-read. Vous pouvez identifier le nom de fichier à partir de la commande az rest --method get. En outre, le timestamp Dernière modification s’aligne sur le moment d’exécution de la commande.

  7. Vous pouvez gérer et télécharger le fichier de sortie à partir de l’affichage Vue d’ensemble.