Поделиться через


Устранение неполадок BMM с помощью az networkcloud baremetalmachine run-read-command

Могут возникнуть ситуации, когда пользователю необходимо исследовать и устранять проблемы с локальным компьютером без операционной системы (BMM). Оператор Nexus предоставляет az networkcloud baremetalmachine run-read-command таким образом, чтобы пользователи могли запускать проверенный список команд только для чтения, чтобы получить информацию из BMM.

Команда создает выходной файл, содержащий результаты выполнения команды run-read. По умолчанию данные отправляются в учетную запись хранения Диспетчера кластеров. Кроме того, есть метод предварительной версии, в котором пользователи могут настроить ресурс кластера с учетной записью хранения и удостоверением с доступом к учетной записи хранения для получения выходных данных.

Необходимые компоненты

  1. Установка последней версии соответствующих расширений CLI
  2. Убедитесь, что целевой BMM должен иметь его poweredState набор On и иметь его readyState значение True
  3. Получение имени группы управляемых ресурсов (cluster_MRG), созданной для Cluster ресурса

Отправка выходных данных команды в указанную пользователем учетную запись хранения

Сведения о поддержке кластера Nexus оператора Azure для управляемых удостоверений и предоставленных пользователем ресурсов

Очистка набора CommandOutputSettings кластера

Чтобы изменить кластер с назначаемого пользователем удостоверения на удостоверение, назначаемое системой, сначала команде CommandOutputSettings необходимо очистить с помощью команды в следующем разделе, а затем задать эту команду с помощью этой команды.

Команды CommandOutputSettings можно очистить, перенаправляя выходные данные запуска и извлечения данных обратно в хранилище диспетчера кластеров. Однако это не рекомендуется, так как он менее безопасный, и параметр будет удален в будущем выпуске.

Однако при переключении с назначаемого пользователем удостоверения на удостоверение, назначаемое системой, необходимо очистить CommandOutputSettings.

Используйте эту команду для очистки 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}}'

НЕРЕКОМЕНДУЕМЫЙ МЕТОД. Проверка доступа к учетной записи хранения Диспетчера кластеров

Внимание

Учетная запись хранения Cluster Manager предназначена для удаления в апреле 2025 г. в последнее время. Если вы используете этот метод сегодня для выходных данных команд, рассмотрите возможность преобразования в использование учетной записи хранения, предоставленной пользователем.

Если используется метод хранилища Cluster Manager, убедитесь, что у вас есть доступ к учетной записи хранения Диспетчера кластеров:

  1. В портал Azure перейдите к учетной записи хранения Диспетчера кластеров.
  2. В разделе сведений о учетной записи хранения выберите браузер хранилища в меню навигации слева.
  3. В браузере хранилища выберите контейнеры BLOB-объектов.
  4. Если вы столкнулись с доступом 403 This request is not authorized to perform this operation. к учетной записи хранения, необходимо обновить параметры брандмауэра учетной записи хранения, чтобы включить общедоступный IP-адрес.
  5. Запросите доступ, создав запрос в службу поддержки через портал на ресурсе Cluster Manager. Укажите общедоступный IP-адрес, которому требуется доступ.

Выполнение команды run-read

Команда run-read позволяет выполнять команду в BMM, которая ничего не меняет. Некоторые команды имеют несколько слов или требуют аргумента для работы. Эти команды создаются так, чтобы отделить их от тех, которые могут изменить вещи. Например, команда run-read-может использовать kubectl get , но не kubectl apply. При использовании этих команд необходимо поместить все слова в поле "Command". Например, правильно, {command:'kubectl get',arguments:[nodes]}{command:kubectl,arguments:[get,nodes]} неправильно.

Кроме того, обратите внимание, что некоторые команды начинаются с nc-toolbox nc-toolbox-runread и должны быть введены, как показано ниже. nc-toolbox-runread — это специальный образ контейнера, который включает в себя больше средств, которые не установлены на узле без операционной системы, например ipmitool и racadm.

Для применения возможностей только для чтения некоторых команд запуска требуются определенные аргументы. Пример команд выполнения, требующих определенных аргументов, — это разрешенная команда mstconfigMellanox, которая требует query предоставления аргумента для принудительного применения только для чтения.

Предупреждение

Корпорация Майкрософт не предоставляет или не поддерживает вызовы API Nexus, которые ожидают предоставления имени пользователя с открытым текстом и (или) пароля. Обратите внимание, что все отправленные значения регистрируются и считаются открытыми секретами, которые следует повернуть и отозвать. Задокументированные майкрософт методы безопасного использования секретов — хранить их в Azure Key Vault. Если у вас есть конкретные вопросы или проблемы, отправьте запрос через портал Azure.

В этом списке показаны команды, которые можно использовать. Команды в *italics* не могут иметь arguments; остальные могут.

  • 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 (Аргумент PeakReset НЕ разрешен)
  • 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 (требуется query arg)
  • nc-toolbox nc-toolbox-runread mstflint (требуется query arg)
  • nc-toolbox nc-toolbox-runread mstlink (требуется query arg)
  • nc-toolbox nc-toolbox-runread mstfwmanager (требуется query arg)
  • nc-toolbox nc-toolbox-runread mlx_temp

Синтаксис команды для одной команды без аргументов выглядит следующим образом:hostname

az networkcloud baremetalmachine run-read-command --name "<machine-name>"
    --limit-time-seconds "<timeout>" \
    --commands "[{command:hostname}]" \
    --resource-group "<cluster_MRG>" \
    --subscription "<subscription>"
  • Параметр --commands всегда принимает список команд, даже если есть только одна команда.
  • Несколько команд можно предоставить в формате JSON с помощью краткой нотации Azure CLI.
  • Любое пробелы должны быть заключены в одинарные кавычки.
  • Все аргументы для каждой команды также должны быть предоставлены в виде списка, как показано в следующих примерах.
--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]}]"

Эти команды могут быть длительными, поэтому рекомендация должна иметь --limit-time-seconds значение не менее 600 секунд (10 минут). Выполнение нескольких команд может занять более 10 минут.

Эта команда выполняется синхронно. Если вы хотите пропустить ожидание завершения команды, укажите --no-wait --debug параметры. Дополнительные сведения см. в статье об отслеживании асинхронных операций.

Если указан необязательный аргумент --output-directory , результат выходных данных загружается и извлекается в локальный каталог.

Предупреждение

--output-directory Использование аргумента перезаписывает все файлы в локальном каталоге с тем же именем, что и созданные новые файлы.

В этом примере выполняется 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>"

В этом примере выполняется hostname команда и 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>"

В этом примере выполняется 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>"

Проверьте состояние команды и просмотрите выходные данные в указанной пользователем учетной записи хранения.

Показан пример выходных данных. Он выводит первые 4000 символов результата на экран для удобства и предоставляет кратковременную ссылку на большой двоичный объект хранилища, содержащий результат выполнения команды. Ссылку можно использовать для скачивания архивированного выходного файла (tar.gz). Чтобы получить доступ к выходным данным, пользователям требуется соответствующий доступ к большому двоичному объекту хранилища. Сведения о назначении ролей учетным записям хранения см. в статье "Назначение роли Azure для доступа к данным 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

НЕ РЕКОМЕНДУЕТСЯ: просмотр выходных данных учетной az networkcloud baremetalmachine run-read-command записи хранения Диспетчера кластеров

В этом руководстве описывается доступ к выходному файлу, созданному в учетной записи хранения Диспетчера кластеров при az networkcloud baremetalmachine run-read-command выполнении на сервере. Имя файла определяется в выходных az rest данных состояния.

  1. Откройте управляемую группу ресурсов Диспетчера кластеров для кластера, на которой размещен сервер, а затем выберите учетную запись хранения.

  2. В разделе сведений о учетной записи хранения выберите браузер хранилища в меню навигации слева.

  3. В браузере хранилища выберите контейнеры BLOB-объектов.

  4. Выберите контейнер BLOB-объектов baremetal-run-command-output.

  5. Учетная запись хранения может быть заблокирована 403 This request is not authorized to perform this operation. из-за ограничений сети или брандмауэра. Сведения о том, как проверить доступ, см. в разделах хранилища диспетчера кластеров или управляемых клиентом хранилищ .

  6. Выберите выходной файл из команды run-read. Имя файла можно определить из az rest --method get команды. Кроме того, метка времени последнего изменения соответствует времени выполнения команды.

  7. Вы можете управлять выходным файлом и скачать его из всплывающего окна обзора .