Устранение неполадок BMM с помощью az networkcloud baremetalmachine run-read-command
Могут возникнуть ситуации, когда пользователю необходимо исследовать и устранять проблемы с локальным компьютером без операционной системы (BMM). Оператор Nexus предоставляет az networkcloud baremetalmachine run-read-command
таким образом, чтобы пользователи могли запускать проверенный список команд только для чтения, чтобы получить информацию из BMM.
Команда создает выходной файл, содержащий результаты выполнения команды run-read. По умолчанию данные отправляются в учетную запись хранения Диспетчера кластеров. Кроме того, есть метод предварительной версии, в котором пользователи могут настроить ресурс кластера с учетной записью хранения и удостоверением с доступом к учетной записи хранения для получения выходных данных.
Необходимые компоненты
- Установка последней версии соответствующих расширений CLI
- Убедитесь, что целевой BMM должен иметь его
poweredState
наборOn
и иметь егоreadyState
значениеTrue
- Получение имени группы управляемых ресурсов (cluster_MRG), созданной для
Cluster
ресурса
Отправка выходных данных команды в указанную пользователем учетную запись хранения
Очистка набора 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, убедитесь, что у вас есть доступ к учетной записи хранения Диспетчера кластеров:
- В портал Azure перейдите к учетной записи хранения Диспетчера кластеров.
- В разделе сведений о учетной записи хранения выберите браузер хранилища в меню навигации слева.
- В браузере хранилища выберите контейнеры BLOB-объектов.
- Если вы столкнулись с доступом
403 This request is not authorized to perform this operation.
к учетной записи хранения, необходимо обновить параметры брандмауэра учетной записи хранения, чтобы включить общедоступный IP-адрес. - Запросите доступ, создав запрос в службу поддержки через портал на ресурсе 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
.
Для применения возможностей только для чтения некоторых команд запуска требуются определенные аргументы.
Пример команд выполнения, требующих определенных аргументов, — это разрешенная команда mstconfig
Mellanox, которая требует 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
данных состояния.
Откройте управляемую группу ресурсов Диспетчера кластеров для кластера, на которой размещен сервер, а затем выберите учетную запись хранения.
В разделе сведений о учетной записи хранения выберите браузер хранилища в меню навигации слева.
В браузере хранилища выберите контейнеры BLOB-объектов.
Выберите контейнер BLOB-объектов baremetal-run-command-output.
Учетная запись хранения может быть заблокирована
403 This request is not authorized to perform this operation.
из-за ограничений сети или брандмауэра. Сведения о том, как проверить доступ, см. в разделах хранилища диспетчера кластеров или управляемых клиентом хранилищ .Выберите выходной файл из команды run-read. Имя файла можно определить из
az rest --method get
команды. Кроме того, метка времени последнего изменения соответствует времени выполнения команды.Вы можете управлять выходным файлом и скачать его из всплывающего окна обзора .