Řešení potíží s nástrojem BMM pomocí nástroje az networkcloud baremetalmachine run-read-command
Může docházet k situacím, kdy uživatel potřebuje prozkoumat a vyřešit problémy s místním holým počítačem (BMM). Operátor Nexus poskytuje az networkcloud baremetalmachine run-read-command
, aby uživatelé mohli spustit kurátorovaný seznam příkazů jen pro čtení pro získání informací z nástroje BMM.
Příkaz vytvoří výstupní soubor obsahující výsledky spuštění příkazu run-read. Ve výchozím nastavení se data odesílají do účtu úložiště Správce clusteru. K dispozici je také metoda Preview, ve které můžou uživatelé nakonfigurovat prostředek clusteru s účtem úložiště a identitou, která má přístup k účtu úložiště, aby získali výstup.
Požadavky
- Nainstalujte nejnovější verzi příslušných rozšíření rozhraní příkazového řádku.
- Ujistěte se, že cílový nástroj BMM musí mít
poweredState
nastavenouOn
hodnotu a musí mít nastavenou hodnotureadyState
True
- Získání názvu spravované skupiny prostředků (cluster_MRG), kterou jste vytvořili pro
Cluster
prostředek
Odeslání výstupu příkazu uživateli zadanému účtu úložiště
Vytvoření a konfigurace prostředků úložiště
- Vytvořte účet úložiště nebo identifikujte existující účet úložiště, který chcete použít. Viz Vytvoření účtu úložiště Azure.
- V účtu úložiště vytvořte kontejner úložiště objektů blob. Viz Vytvoření kontejneru.
- Přiřaďte roli Přispěvatel dat objektů blob úložiště uživatelům a spravovaným identitám, které potřebují přístup k výstupu extrakce run-data.
- Viz Přiřazení role Azure pro přístup k datům objektů blob. Tato role musí být také přiřazena spravované identitě přiřazené uživatelem nebo vlastní spravované identitě přiřazené systémem clusteru.
- Další informace o spravovaných identitách najdete v tématu Spravované identity pro prostředky Azure.
- Pokud používáte identitu přiřazenou systémem clusteru, musí se do clusteru přidat identita přiřazená systémem, aby bylo možné udělit přístup.
- Při přiřazování role k identitě přiřazené systémem clusteru se ujistěte, že jste vybrali prostředek s typem Cluster (Operátor Nexus).
Konfigurace clusteru pro použití spravované identity přiřazené uživatelem pro přístup k úložišti
Tento příkaz použijte k vytvoření clusteru s účtem úložiště spravovaným uživatelem a identitou přiřazenou uživatelem. Všimněte si, že tento příklad je zkrácený příkaz, který jenom zvýrazní pole relevantní pro přidání úložiště spravovaného uživatelem. Nejedná se o příkaz pro vytvoření celého clusteru.
az networkcloud cluster create --name "<cluster-name>" \
--resource-group "<cluster-resource-group>" \
...
--mi-user-assigned "<user-assigned-identity-resource-id>" \
--command-output-settings identity-type="UserAssignedIdentity" \
identity-resource-id="<user-assigned-identity-resource-id>" \
container-url="<container-url>" \
...
--subscription "<subscription>"
Tento příkaz použijte ke konfiguraci existujícího clusteru pro uživatelem zadaný účet úložiště a identitu přiřazenou uživatelem. Příkaz update se dá použít také ke změně umístění účtu úložiště a identity v případě potřeby.
az networkcloud cluster update --name "<cluster-name>" \
--resource-group "<cluster-resource-group>" \
--mi-user-assigned "<user-assigned-identity-resource-id>" \
--command-output-settings identity-type="UserAssignedIdentity" \
identity-resource-id="<user-assigned-identity-resource-id>" \
container-url="<container-url>" \
--subscription "<subscription>"
Konfigurace clusteru pro použití spravované identity přiřazené systémem pro přístup k úložišti
Tento příkaz použijte k vytvoření clusteru s účtem úložiště spravovaným uživatelem a identitou přiřazenou systémem. Všimněte si, že tento příklad je zkrácený příkaz, který jenom zvýrazní pole relevantní pro přidání úložiště spravovaného uživatelem. Nejedná se o příkaz pro vytvoření celého clusteru.
az networkcloud cluster create --name "<cluster-name>" \
--resource-group "<cluster-resource-group>" \
...
--mi-system-assigned true \
--command-output-settings identity-type="SystemAssignedIdentity" \
container-url="<container-url>" \
...
--subscription "<subscription>"
Tento příkaz použijte ke konfiguraci existujícího clusteru pro účet úložiště poskytnutého uživatelem a k používání vlastní identity přiřazené systémem. Příkaz update se dá použít také ke změně umístění účtu úložiště.
az networkcloud cluster update --name "<cluster-name>" \
--resource-group "<cluster-resource-group>" \
--mi-system-assigned true \
--command-output-settings identity-type="SystemAssignedIdentity" \
container-url="<container-url>" \
--subscription "<subscription>"
Pokud chcete změnit cluster z identity přiřazené uživatelem na identitu přiřazenou systémem, musí být commandOutputSettings nejprve vymazán pomocí příkazu v další části a pak nastavit pomocí tohoto příkazu.
Vymazání commandOutputSettings clusteru
CommandOutputSettings je možné vymazat a směrovat výstup run-data-extract zpět do úložiště správce clusteru. Nedoporučuje se ale, protože je méně zabezpečená a v budoucí verzi se tato možnost odebere.
Příkaz CommandOutputSettings ale musí být vymazán, pokud přechází z identity přiřazené uživatelem na identitu přiřazenou systémem.
Pomocí tohoto příkazu vymažte 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}}'
Zobrazení ID objektu zabezpečení pro spravovanou identitu
ID prostředku identity najdete tak, že u prostředku identity vyberete zobrazení JSON. ID je v horní části zobrazeného panelu. Adresu URL kontejneru najdete na kartě Nastavení –> Vlastnosti prostředku kontejneru.
Rozhraní příkazového řádku se dá použít také k zobrazení identity a přidružených dat ID objektu zabezpečení v rámci clusteru.
Příklad:
az networkcloud cluster show --ids /subscriptions/<Subscription ID>/resourceGroups/<Cluster Resource Group Name>/providers/Microsoft.NetworkCloud/clusters/<Cluster Name>
Příklad identity přiřazené systémem:
"identity": {
"principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
"tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
"type": "SystemAssigned"
},
Příklad identity přiřazené uživatelem:
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/<subscriptionID>/resourcegroups/<resourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<userAssignedIdentityName>": {
"clientId": "00001111-aaaa-2222-bbbb-3333cccc4444",
"principalId": "bbbbbbbb-cccc-dddd-2222-333333333333"
}
}
},
ZASTARALÁ METODA: Ověření přístupu k účtu úložiště Správce clusteru
Důležité
Účet úložiště Správce clusteru je cílem odebrání nejpozději v dubnu 2025. Pokud dnes používáte tuto metodu pro výstup příkazu, zvažte převod na použití účtu úložiště poskytnutého uživatelem.
Pokud používáte metodu úložiště Správce clusteru, ověřte, že máte přístup k účtu úložiště Správce clusteru:
- Na webu Azure Portal přejděte do účtu úložiště Správce clusteru.
- V podrobnostech účtu úložiště vyberte v navigační nabídce na levé straně prohlížeč úložiště.
- V podrobnostech prohlížeče úložiště vyberte kontejnery objektů blob.
- Pokud při přístupu k účtu úložiště narazíte
403 This request is not authorized to perform this operation.
, je potřeba aktualizovat nastavení brány firewall účtu úložiště tak, aby zahrnovalo veřejnou IP adresu. - Požádejte o přístup vytvořením lístku podpory prostřednictvím portálu v prostředku Správce clusteru. Zadejte veřejnou IP adresu, která vyžaduje přístup.
Spuštění příkazu run-read
Příkaz run-read umožňuje spustit příkaz v nástroji BMM, který nic nemění. Některé příkazy mají více slov nebo potřebují argument pro práci. Tyto příkazy se dělají takto, aby se oddělily od těch, které můžou měnit věci. Například příkaz run-read-command může použít kubectl get
, ale ne kubectl apply
. Když tyto příkazy použijete, musíte všechna slova vložit do pole "příkaz". Je to například {"command":"kubectl get","arguments":["nodes"]}
správně, {"command":"kubectl","arguments":["get","nodes"]}
je špatná.
Všimněte si také, že některé příkazy začínají nc-toolbox nc-toolbox-runread
a musí být zadány, jak je znázorněno.
nc-toolbox-runread
je speciální image kontejneru, která obsahuje další nástroje, které nejsou nainstalovány na holých počítačích hostitele, například ipmitool
a racadm
.
Některé příkazy pro čtení vyžadují zadání konkrétních argumentů pro vynucení funkcí jen pro čtení příkazů.
Příkladem příkazů pro čtení, které vyžadují konkrétní argumenty, je povolený příkaz mstconfig
Mellanox, který vyžaduje zadání argumentu query
k vynucení jen pro čtení.
Upozorňující
Microsoft neposkytuje ani nepodporuje žádná volání rozhraní API pro operátory Nexus, která očekávají zadání uživatelského jména nebo hesla ve formátu prostého textu. Všimněte si, že se zaprotokolují všechny odeslané hodnoty a považují se za vystavené tajné kódy, které by se měly otočit a odvolat. Dokumentovanou metodou Microsoftu pro bezpečné použití tajných kódů je jejich uložení ve službě Azure Key Vault. Pokud máte konkrétní dotazy nebo pochybnosti, odešlete žádost prostřednictvím webu Azure Portal.
Tento seznam zobrazuje příkazy, které můžete použít. *italics*
Příkazy nemůžou obsahovat arguments
, zbytek můž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
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 NENÍ povolený)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
(vyžadujequery
arg)nc-toolbox nc-toolbox-runread mstflint
(vyžadujequery
arg)nc-toolbox nc-toolbox-runread mstlink
(vyžadujequery
arg)nc-toolbox nc-toolbox-runread mstfwmanager
(vyžadujequery
arg)nc-toolbox nc-toolbox-runread mlx_temp
Syntaxe příkazu je:
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>"
K dispozici je více příkazů ve formátu --commands
JSON.
Pro příkaz s více argumenty zadejte jako seznam parametru arguments
. Pokyny k vytvoření struktury najdete v --commands
stručné dokumentaci k Azure CLI.
Tyto příkazy můžou být dlouhotrvající, takže doporučujeme nastavit --limit-time-seconds
alespoň 600 sekund (10 minut). Spuštění více příkazů může trvat déle než 10 minut.
Tento příkaz běží synchronně. Pokud chcete přeskočit čekání na dokončení příkazu, zadejte --no-wait --debug
možnosti. Další informace najdete v tématu sledování asynchronních operací.
Pokud je zadaný volitelný argument --output-directory
, stáhne se výstupní výsledek a extrahuje do místního adresáře.
Upozorňující
Použití argumentu --output-directory
přepíše všechny soubory v místním adresáři, které mají stejný název jako nově vytvořené soubory.
Tento příklad spustí pody 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>"
Tento příklad spustí hostname
příkaz a ping
příkaz.
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>"
Tento příklad spustí příkaz.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>"
Zobrazení výstupu az networkcloud baremetalmachine run-read-command
účtu úložiště Správce clusteru
Tato příručka vás provede přístupem k výstupnímu souboru vytvořenému v účtu úložiště Správce clusteru při az networkcloud baremetalmachine run-read-command
spuštění na serveru. Název souboru je identifikován ve výstupu az rest
stavu.
Otevřete spravovanou skupinu prostředků Správce clusteru pro cluster, ve kterém je server umístěn, a pak vyberte účet úložiště.
V podrobnostech účtu úložiště vyberte v navigační nabídce na levé straně prohlížeč úložiště.
V podrobnostech prohlížeče úložiště vyberte kontejnery objektů blob.
Vyberte kontejner objektů blob baremetal-run-command-output.
Účet úložiště může být uzamčený
403 This request is not authorized to perform this operation.
kvůli omezením sítí nebo brány firewall. Pokud chcete ověřit přístup, projděte si část úložiště správce clusteru nebo oddíly úložiště spravované zákazníkem.Vyberte výstupní soubor z příkazu run-read. Název souboru lze identifikovat z
az rest --method get
příkazu. Časové razítko poslední změny se navíc shoduje s tím, kdy byl příkaz proveden.Výstupní soubor můžete spravovat a stahovat z automaticky otevíraných oken Přehled .
PREVIEW: Zkontrolujte stav příkazu a zobrazte výstup v účtu úložiště zadaném uživatelem.
Zobrazí se ukázkový výstup. Vypíše prvních 4 000 znaků výsledku na obrazovku pro usnadnění a poskytne krátkodobé propojení s objektem blob úložiště obsahujícím výsledek provedení příkazu. Pomocí odkazu můžete stáhnout komprimovaný výstupní soubor (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