Udostępnij za pośrednictwem


Rozwiązywanie problemów z programem BMM przy użyciu narzędzia az networkcloud baremetalmachine run-read-command

Mogą wystąpić sytuacje, w których użytkownik musi zbadać i rozwiązać problemy z lokalną maszyną bez systemu operacyjnego (BMM). Operator Nexus udostępnia, az networkcloud baremetalmachine run-read-command aby użytkownicy mogli uruchamiać wyselekcjonaną listę poleceń tylko do odczytu, aby uzyskać informacje z programu BMM.

Polecenie generuje plik wyjściowy zawierający wyniki wykonywania polecenia run-read. Domyślnie dane są wysyłane do konta magazynu Menedżera klastra. Dostępna jest również metoda w wersji zapoznawczej, w której użytkownicy mogą skonfigurować zasób klastra przy użyciu konta magazynu i tożsamości, która ma dostęp do konta magazynu w celu odbierania danych wyjściowych.

Wymagania wstępne

  1. Instalowanie najnowszej wersji odpowiednich rozszerzeń interfejsu wiersza polecenia
  2. Upewnij się, że docelowy program BMM musi mieć ustawioną poweredState wartość On i musi mieć ustawioną readyState wartość True
  3. Pobierz nazwę zarządzanej grupy zasobów (cluster_MRG) utworzoną dla Cluster zasobu

Wysyłanie danych wyjściowych polecenia do określonego konta magazynu przez użytkownika

Zobacz Obsługa klastra Nexus operatora platformy Azure dla tożsamości zarządzanych i zasobów udostępnionych przez użytkownika

Wyczyść polecenieOutputSettings klastra

Aby zmienić klaster z tożsamości przypisanej przez użytkownika na tożsamość przypisaną przez system, należy najpierw wyczyścić polecenie przy użyciu polecenia w następnej sekcji, a następnie ustawić przy użyciu tego polecenia.

PoleceniaOutputSettings można wyczyścić, kierując dane wyjściowe run-data-extract z powrotem do magazynu menedżera klastra. Nie jest to jednak zalecane, ponieważ jest mniej bezpieczne, a opcja zostanie usunięta w przyszłej wersji.

Należy jednak wyczyścić polecenie CommandOutputSettings w przypadku przejścia z tożsamości przypisanej przez użytkownika do tożsamości przypisanej przez system.

Użyj tego polecenia, aby wyczyścić polecenie 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}}'

PRZESTARZAŁA METODA: Weryfikowanie dostępu do konta magazynu Menedżera klastra

Ważne

Konto magazynu Menedżera klastra jest przeznaczone do usunięcia w kwietniu 2025 r. najpóźniej. Jeśli używasz tej metody dzisiaj dla danych wyjściowych polecenia, rozważ przekonwertowanie na przy użyciu podanego przez użytkownika konta magazynu.

Jeśli używasz metody magazynu Menedżera klastra, sprawdź, czy masz dostęp do konta magazynu menedżera klastra:

  1. W witrynie Azure Portal przejdź do konta magazynu menedżera klastra.
  2. W obszarze Szczegóły konta magazynu wybierz pozycję Przeglądarka magazynu z menu nawigacji po lewej stronie.
  3. W obszarze Szczegóły przeglądarki usługi Storage wybierz pozycję Kontenery obiektów blob.
  4. Jeśli wystąpi błąd 403 This request is not authorized to perform this operation. podczas uzyskiwania dostępu do konta magazynu, ustawienia zapory konta magazynu muszą zostać zaktualizowane, aby uwzględnić publiczny adres IP.
  5. Zażądaj dostępu, tworząc bilet pomocy technicznej za pośrednictwem portalu w zasobie Menedżera klastra. Podaj publiczny adres IP, który wymaga dostępu.

Wykonywanie polecenia run-read

Polecenie run-read umożliwia uruchomienie polecenia w programie BMM, które nie zmienia niczego. Niektóre polecenia mają więcej niż jedno słowo lub wymagają argumentu do działania. Te polecenia są wykonywane w ten sposób, aby oddzielić je od tych, które mogą zmienić rzeczy. Na przykład polecenie run-read-może używać polecenia kubectl get , ale nie kubectl apply. W przypadku używania tych poleceń należy umieścić wszystkie wyrazy w polu "command". Na przykład {command:'kubectl get',arguments:[nodes]} jest słuszne. {command:kubectl,arguments:[get,nodes]} Jest to złe.

Należy również pamiętać, że niektóre polecenia zaczynają się od nc-toolbox nc-toolbox-runread i muszą być wprowadzone, jak pokazano. nc-toolbox-runread to specjalny obraz kontenera, który zawiera więcej narzędzi, które nie są zainstalowane na hoście bez systemu operacyjnego, takich jak ipmitool i racadm.

Niektóre polecenia run-read wymagają dostarczenia określonych argumentów w celu wymuszenia możliwości tylko do odczytu poleceń. Przykładem poleceń run-read, które wymagają określonych argumentów, jest dozwolone polecenie mstconfigMellanox , które wymaga podania argumentu query w celu wymuszania tylko do odczytu.

Ostrzeżenie

Firma Microsoft nie udostępnia ani nie obsługuje żadnych wywołań interfejsu API Nexus operatora, które oczekują podania nazwy użytkownika i/lub hasła w postaci zwykłego tekstu. Zwróć uwagę, że wszystkie wysyłane wartości są rejestrowane i są uznawane za uwidocznione wpisy tajne, które powinny zostać obrócone i odwołane. Udokumentowana przez firmę Microsoft metoda bezpiecznego używania wpisów tajnych polega na przechowywaniu ich w usłudze Azure Key Vault. Jeśli masz konkretne pytania lub wątpliwości, prześlij żądanie za pośrednictwem witryny Azure Portal.

Ta lista zawiera polecenia, których można użyć. Polecenia w programie *italics* nie mogą mieć arguments; reszta może.

  • 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 (Argument PeakReset NOT allowed)
  • 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 (wymaga query arg)
  • nc-toolbox nc-toolbox-runread mstflint (wymaga query arg)
  • nc-toolbox nc-toolbox-runread mstlink (wymaga query arg)
  • nc-toolbox nc-toolbox-runread mstfwmanager (wymaga query arg)
  • nc-toolbox nc-toolbox-runread mlx_temp

Składnia polecenia dla pojedynczego polecenia bez argumentów jest następująca, używając hostname jako przykładu:

az networkcloud baremetalmachine run-read-command --name "<machine-name>"
    --limit-time-seconds "<timeout>" \
    --commands "[{command:hostname}]" \
    --resource-group "<cluster_MRG>" \
    --subscription "<subscription>"
  • Parametr --commands zawsze przyjmuje listę poleceń, nawet jeśli istnieje tylko jedno polecenie.
  • W formacie json można podać wiele poleceń przy użyciu notacji skróconej interfejsu wiersza polecenia platformy Azure.
  • Wszelkie białe znaki muszą być ujęte w apostrofy.
  • Wszystkie argumenty dla każdego polecenia muszą być również podane jako lista, jak pokazano w poniższych przykładach.
--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]}]"

Te polecenia mogą być długotrwałe, dlatego zalecane jest ustawienie --limit-time-seconds co najmniej 600 sekund (10 minut). Uruchamianie wielu poleceń może potrwać dłużej niż 10 minut.

To polecenie jest uruchamiane synchronicznie. Jeśli chcesz pominąć oczekiwanie na ukończenie polecenia, określ --no-wait --debug opcje. Aby uzyskać więcej informacji, zobacz jak śledzić operacje asynchroniczne.

Po podaniu opcjonalnego argumentu --output-directory wynik wyjściowy zostanie pobrany i wyodrębniony do katalogu lokalnego.

Ostrzeżenie

Użycie argumentu --output-directory zastępuje wszystkie pliki w katalogu lokalnym, które mają taką samą nazwę jak tworzone nowe pliki.

Ten przykład wykonuje zasobniki "kubectl get"

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

W tym przykładzie hostname jest wykonywane polecenie i ping polecenie

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

W tym przykładzie racadm getsysinfo -c jest wykonywane polecenie

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

Sprawdź stan polecenia i wyświetl dane wyjściowe na określonym koncie magazynu użytkownika

Wyświetlane są przykładowe dane wyjściowe. Wyświetla on 4000 pierwszych znaków wyniku na ekranie dla wygody i zapewnia krótkotrwały link do obiektu blob magazynu zawierającego wynik wykonania polecenia. Możesz użyć linku, aby pobrać spakowany plik wyjściowy (tar.gz). Aby uzyskać dostęp do danych wyjściowych, użytkownicy potrzebują odpowiedniego dostępu do obiektu blob magazynu. Aby uzyskać informacje na temat przypisywania ról do kont magazynu, zobacz Przypisywanie roli platformy Azure w celu uzyskania dostępu do danych obiektów 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

PRZESTARZAŁE: Jak wyświetlić dane wyjściowe elementu az networkcloud baremetalmachine run-read-command na koncie magazynu menedżera klastra

Ten przewodnik przeprowadzi Cię przez proces uzyskiwania dostępu do pliku wyjściowego utworzonego na koncie magazynu menedżera klastra, gdy obiekt az networkcloud baremetalmachine run-read-command jest wykonywany na serwerze. Nazwa pliku jest identyfikowana w danych wyjściowych az rest stanu.

  1. Otwórz zarządzaną grupę zasobów menedżera klastra dla klastra, w którym znajduje się serwer, a następnie wybierz konto magazynu.

  2. W obszarze Szczegóły konta magazynu wybierz pozycję Przeglądarka magazynu z menu nawigacji po lewej stronie.

  3. W obszarze Szczegóły przeglądarki usługi Storage wybierz pozycję Kontenery obiektów blob.

  4. Wybierz kontener obiektów blob wyjściowych baremetal-run-run-command..

  5. Konto magazynu może być zablokowane 403 This request is not authorized to perform this operation. z powodu ograniczeń sieciowych lub zapory. Zapoznaj się z sekcjami magazynu menedżera klastra lub magazynem zarządzanym przez klienta, aby zapoznać się z procedurami weryfikacji dostępu.

  6. Wybierz plik wyjściowy z polecenia run-read. Nazwę pliku można zidentyfikować za pomocą az rest --method get polecenia . Ponadto znacznik czasu Ostatniej modyfikacji jest zgodny z momentem wykonania polecenia.

  7. Plik wyjściowy można zarządzać i pobierać z okna podręcznego Przegląd .