az networkcloud baremetalmachine run-read-command
を使用した BMM 問題のトラブルシューティング
ユーザーがオンプレミスのベア メタル マシン (BMM) に関する問題を調査して解決する必要がある状況になる場合があります。 Operator Nexus は、ユーザーが読み取り専用コマンドの精選した一覧を実行して BMM から情報を取得できるように、az networkcloud baremetalmachine run-read-command
を提供します。
このコマンドは、run-read コマンド実行の結果を含む出力ファイルを生成します。 既定では、このデータはクラスター マネージャー ストレージ アカウントに送信されます。 また、ユーザーが、そのストレージ アカウントにアクセスできるストレージ アカウントと ID を使用してクラスター リソースを構成し、その出力を受信できるプレビューの方法もあります。
前提条件
- 適切な CLI 拡張機能の最新バージョンをインストールする
- ターゲット BMM の
poweredState
がOn
に設定され、readyState
がTrue
に設定されていることを確認する Cluster
リソース用に作成したマネージド リソース グループ名 (cluster_MRG) を取得します
クラスター マネージャー ストレージ アカウントへのアクセスを確認する
Note
今後、信頼されたサービスへのクラスターのオンボードが完了し、ユーザー マネージド ストレージ オプションが完全にサポートされると、クラスター マネージャー ストレージ アカウントの出力方法は非推奨となる予定です。
クラスター マネージャーのストレージ方法を使用している場合は、クラスター マネージャーのストレージ アカウントにアクセスできることを確認します。
- Azure portal から、クラスター マネージャーのストレージ アカウントに移動します。
- ストレージ アカウントの詳細で、左側のナビゲーション メニューから [ストレージ ブラウザー] を選択します。
- ストレージ ブラウザーの詳細で、[BLOB コンテナー] を選択します。
- ストレージ アカウントへのアクセス中に
403 This request is not authorized to perform this operation.
が表示された場合、ストレージ アカウントのファイアウォール設定を更新して、パブリック IP アドレスが含まれるようにする必要があります。 - クラスター マネージャー リソースでポータルを介してサポート チケットを作成して、アクセスを要求します。 アクセスを必要とするパブリック IP アドレスを指定します。
プレビュー: ユーザー指定のストレージ アカウントにコマンド出力を送信する
重要
コマンド出力用にユーザー ストレージ アカウントを指定するこの方法は、プレビュー段階であることに注意してください。 この方法は、ファイアウォールが有効になっていないユーザー ストレージ アカウントでのみ使用する必要があります。 お使いの環境でストレージ アカウントのファイアウォールを有効にする必要がある場合は、既存のクラスター マネージャーの出力方法を使用してください。
ストレージ リソースを作成して構成する
- ストレージ アカウントを作成する、または使用する既存のストレージ アカウントを特定します。 「Azure Storage アカウントを作成する」を参照してください。
- ストレージ アカウント内に Blob Storage コンテナーを作成します。 「コンテナーを作成する」を参照してください。
- "ストレージ BLOB データ共同作成者" ロールを、run-data-extract の出力へのアクセスが必要なユーザーとマネージド ID に割り当てます。
- 「BLOB データにアクセスするための Azure ロールを割り当てる」を参照してください。 また、このロールは、ユーザー割り当てマネージド ID またはクラスター独自のシステム割り当てマネージド ID のいずれかにも割り当てる必要があります。
- マネージド ID の詳細については、Azure リソースのマネージド ID に関するページを参照してください。
- クラスターのシステム割り当て ID を使用する場合は、アクセスを付与する前に、そのシステム割り当て ID をクラスターに追加する必要があります。
- クラスターのシステム割り当て ID にロールを割り当てる場合は、必ず "クラスター (Operator Nexus)" という種類のリソースを選択してください。
ストレージ アクセスにユーザー割り当てマネージド ID を使用するようにクラスターを構成する
ユーザー マネージド ストレージ アカウントとユーザー割り当て ID を持つクラスターを作成するには、このコマンドを使用します。 この例は、ユーザー マネージド ストレージの追加に関係するフィールドを強調するだけの、省略されたコマンドであることに注意してください。 これは、完全な cluster create コマンドではありません。
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>"
ユーザーが指定したストレージ アカウントとユーザー割り当て ID 用に既存のクラスターを構成するには、このコマンドを使用します。 update コマンドを使用し、必要に応じてストレージ アカウントの場所と ID を変更することもできます。
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>"
ストレージ アクセスにシステム割り当てマネージド ID を使用するようにクラスターを構成する
ユーザー マネージド ストレージ アカウントとシステム割り当て ID を持つクラスターを作成するには、このコマンドを使用します。 この例は、ユーザー マネージド ストレージの追加に関係するフィールドを強調するだけの、省略されたコマンドであることに注意してください。 これは、完全な cluster create コマンドではありません。
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>"
ユーザーが指定したストレージ アカウント用に既存のクラスターを構成し、独自のシステム割り当て ID を使用するには、このコマンドを使用します。 update コマンドを使用して、ストレージ アカウントの場所を変更することもできます。
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>"
クラスターをユーザー割り当て ID からシステム割り当て ID に変更するには、まず次のセクションの中のコマンドを使用して CommandOutputSettings をクリアしてから、このコマンドを使用して設定する必要があります。
クラスターの CommandOutputSettings をクリアする
CommandOutputSettings をクリアし、run-data-extract の出力をクラスター マネージャーのストレージに戻すことができます。 ただし、これは安全性が低く、このオプションは今後のリリースで削除されるため、お勧めしません。
しかしながら、ユーザー割り当て ID からシステム割り当て ID に切り替える場合は、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}}'
マネージド ID のプリンシパル ID を表示する
ID リソースの ID は、その ID リソース上で "JSON ビュー" を選択すると参照できます。この ID は、表示されるパネルの上部にあります。 コンテナーの URL は、コンテナー リソースの [設定] -> [プロパティ] タブ上で参照できます。
CLI を使用して、クラスター内の ID と、関連付けられたプリンシパル ID データを表示することもできます。
例:
az networkcloud cluster show --ids /subscriptions/<Subscription ID>/resourceGroups/<Cluster Resource Group Name>/providers/Microsoft.NetworkCloud/clusters/<Cluster Name>
システム割り当て ID の例:
"identity": {
"principalId": "2cb564c1-b4e5-4c71-bbc1-6ae259aa5f87",
"tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
"type": "SystemAssigned"
},
ユーザー割り当て ID の例:
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/<subscriptionID>/resourcegroups/<resourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<userAssignedIdentityName>": {
"clientId": "e67dd610-99cf-4853-9fa0-d236b214e984",
"principalId": "8e6d23d6-bb6b-4cf3-a00f-4cd640ab1a24"
}
}
},
run-read コマンドを実行する
run-read コマンドを使用すると、何も変更しないコマンドを BMM で実行できます。 コマンドの中には、複数の語が含まれているものや、動作するために引数を必要とするものがあります。 これらのコマンドは、変更を加えることができるコマンドから分離するために、このように作成されています。 たとえば、run-read-command は 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
など) が含まれています。
一部の実行読み取りコマンドでは、コマンドの読み取り専用機能を適用するために特定の引数を指定する必要があります。
特定の引数を必要とする実行読み取りコマンドの例として、許可される Mellanox コマンド mstconfig
があります。このコマンドでは、読み取り専用を適用するために query
引数を指定する必要があります。
警告
Microsoft では、プレーンテキストのユーザー名やパスワードを指定することが想定される Operator Nexus API 呼び出しを提供またはサポートしていません。 送信されるすべての値がログに記録され、公開されたシークレットであると見なされ、これらにはローテーションおよび取り消しが必要があることに注意してください。 Microsoft が文書化したシークレットを安全に使用する方法は、それらを Azure Key Vault に格納する方法です。特定のご質問やご不明な点がある場合は、Azure Portal 経由でリクエストを送信してください。
この一覧では、使用できるコマンドを示します。 *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
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
引数が必要)nc-toolbox nc-toolbox-runread mstflint
(query
引数が必要)nc-toolbox nc-toolbox-runread mstlink
(query
引数が必要)nc-toolbox nc-toolbox-runread mstfwmanager
(query
引数が必要)nc-toolbox nc-toolbox-runread mlx_temp
コマンド構文は次のとおりです。
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>"
--commands
オプションに json 形式で複数のコマンドを指定できます。
複数の引数を持つコマンドの場合は、arguments
パラメーターのリストとして指定します。 --commands
構造の構築手順については、「Azure CLI の短縮表現」を参照してください。
これらのコマンドは実行時間が長い場合があるため、--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>"
クラスター マネージャー ストレージ アカウントで az networkcloud baremetalmachine run-read-command
の出力を表示する方法
このガイドでは、サーバーで az networkcloud baremetalmachine run-read-command
が実行されたときにクラスター マネージャー ストレージ アカウントで作成される出力ファイルにアクセスする手順について説明します。 ファイルの名前は、az rest
の状態の出力で識別されます。
サーバーが格納されているクラスターのクラスター マネージャーの管理対象リソース グループを開き、[ストレージ アカウント] を選択します。
ストレージ アカウントの詳細で、左側のナビゲーション メニューから [ストレージ ブラウザー] を選択します。
ストレージ ブラウザーの詳細で、[BLOB コンテナー] を選択します。
baremetal-run-command-output BLOB コンテナーを選択します。
ストレージ アカウントがロックされ、ネットワークまたはファイアウォールの制限が原因で
403 This request is not authorized to perform this operation.
が発生する可能性があります。 アクセスを確認する手順については、クラスター マネージャー ストレージまたはカスタマー マネージド ストレージのセクションを参照してください。run-read コマンドからの出力ファイルを選択します。 ファイル名は、
az rest --method get
コマンドから識別できます。 さらに、最終変更タイムスタンプは、コマンドの実行時に合わせて調整されます。出力ファイルは、[概要] ポップアップから管理およびダウンロードできます。
プレビュー: コマンドの状態を確認し、ユーザー指定のストレージ アカウン内で出力を表示する
サンプル出力を示します。 便宜上、結果の上位 4,000 文字が画面に出力され、コマンドの実行結果を含むストレージ BLOB への短期間のリンクが表示されます。 このリンクを使用して、zip 形式の出力ファイル (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