Azure Stack HCIでローカルUI経由のAzure Arc登録を試す

# 本記事について
:::note warn
2025/4/12 追記
こちらの記事で紹介していたローカルUI経由のAzure Arc登録機能は廃止となりました。
代わりに以下のConfigurator appを利用した同等の機能がプレビューで提供されています。
https://learn.microsoft.com/en-us/azure/azure-local/deploy/deployment-arc-register-configurator-app?view=azloc-2503
:::
いつの間にやらAzure Stack HCI 23H2にプレビューバージョンが提供されていました。
今回はプレビューバージョンの機能の1つであるローカルUI経由でのサーバの初期設定を試してみたいと思います。

公式ドキュメントはこちらです。
[Microsoft Learn | ローカルUI経由](https://learn.microsoft.com/en-us/azure-stack/hci/deploy/deployment-arc-register-local-ui)

# 前提条件
## プレビュー版ISO
AzureポータルからのISOダウンロード時に、"English Preview"のISOファイルをダウンロードし、こちらを利用します。
![iso.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481267/2cbd504a-54bf-a189-ba0a-85c20ebf5ad6.jpeg)

## マルチキャスト通信
今回私が試した手順ではローカルUIへのアクセスには後述のmDNSが利用されますので、作業端末からサーバに対してマルチキャスト通信が届く必要があります。
基本的には同一ネットワーク内での作業になるでしょう。

# 手順
早速ではあるのですが、ドキュメントに記載のWeb UIのアドレスである"https://\<device-serial-number>.local"には私の手元の仮想環境ではアクセスしてもWeb UIが表示されませんでした。
まず、"\<device-serial-number>.local"というアドレスの名前解決ですが、これはマルチキャストDNSの利用が想定されたものと思われます。
そのため、シリアル番号が既定のホスト名に設定されている状態を想定したアクセスなのではと推測していますが、私の仮想環境（Hyper-V VM）ではシリアル番号と既定のホスト名は異なっておりWeb UIに"\<device-serial-number>.local"でアクセスすることはできませんでした。
一方で、Web UI自体には"ホスト名".localでアクセスすることができましたので、こちらで動作確認を続けていきます。

## Web UIへのアクセス
サーバにOSをインストールしてローカル管理者のパスワード設定をおこない、しばらくしましたらブラウザからアクセスできるようになります。
今回はホスト名を指定してアクセスしますので、以下のアドレスを入力します。
**https://<ホスト名>.local**

すると、自己証明書ゆえの証明書に関するアラートの画面が表示されますが、無視して進むとユーザー名を入力する画面が現れます。
![login.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481267/70513b42-b661-0a85-d144-586a80fcf67e.jpeg)

ローカル管理者ユーザーである"administrator"を入力後、OSインストール後に設定したローカル管理者のパスワードを入力してログインします。
ログインするとAzure Stack HCIのWeb UIが表示されます。
![startpage.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481267/d72649a8-0ad3-83db-eccf-fa6fbdd23bff.jpeg)
なお、ここで画面左上に表示されている"WIN-"から始まる文字列がホスト名、"4545-"から始まる文字列がシリアル番号になります。

### 名前解決の補足
マルチキャストDNSは名前の通りマルチキャストでDNSクエリを実行することで、該当のホストからの応答をもって名前解決するプロトコルです。
そのため、前提条件に記載のマルチキャスト通信ができる必要がありました。

ちなみに、Web UI自体には<device-serial-number>.localや<ホスト名>.localでアクセスすること自体は必須では無いようですので、直接リンクローカルアドレスを指定したり、先にSConfigからIPアドレスを割り当ててルーティング可能なIPでアクセスして設定することもできました。

## Web UIでのサーバの初期設定（Basicsタブ）
BasicsタブではNICのIPアドレス設定がおこなえます。
ここで設定できる項目は以下の通りでした。NIC名は変更できません。
![basics1.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481267/e9865559-8589-3033-ed0d-9afcf29a6899.jpeg)

さらに、"Enter additional details"をクリックすることで以下の設定もおこなえました。
Time zoneでJSTが選べないのは気になりましたが、一通りの初期設定がおこなえます。
![basics2.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481267/5c8505ca-0884-02c7-f3c1-5858e18d71e0.jpeg)
![basics3.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481267/8f80457a-3114-502e-a95e-a5c77000ad96.jpeg)

なお、ここでホスト名を設定する場合はこの後の手順で要注意です。
先述の通りマルチキャストDNSで名前解決をしてアクセスしており、この手順で<ホスト名>.localでアクセスしている場合は設定変更が開始されてホスト名が変更されると名前解決ができずアクセスできなくなります。
その場合は指定したホスト名で改めてアクセスし直しましょう。

## Web UIでのサーバの初期設定（Arc agent setup）
ここではAzure Arcに登録するための情報として、Entra IDやAzureサブスクリプション、リソースグループの情報を入力します。
本機能と同じくプレビュー中のArc gatewayを利用する場合もここでリソースIDを指定できるようです。
![agent1.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481267/13b5bd3b-ff35-f5ab-71ce-d69c7f0868f5.jpeg)

## Web UIでのサーバの初期設定（Review and apply）
最後に設定内容を確認して"Finish"で実行します。
実行状況が表示されますが、ホスト名を変更する場合はここですぐにサーバのホスト名が変更されて再起動がかかります。
そのため、サーバ起動を待って、新しい<ホスト名>.localにアクセスしなおしましょう。
![apply1.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481267/e8911d70-3592-528b-4826-01af33d0b0d4.jpeg)

しばらくすると"Arc configuration"の"Current Status"にDevice codeとデバイスコードログインのURLが表示されます。
Azure Arcに登録するにあたり、デバイスコードログインでAzureへのログインが必要になりますのでURLをクリックしてアクセスし、デバイスコードを入力してログインを完了させましょう。
地味なところですがURLがクリッカブルでデバイスコードにコピーボタンが付いているのがUIとしてありがたいです。
![devicecode1.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481267/08011540-68a5-5112-0ee2-e7d5d87eea93.jpeg)

すべての処理が完了すると、"On-site configuration complete. No further action needed. Inform your cloud admin for next actions."と表示されます。
Azureポータルを開くとサーバがArc-enabled serversとして登録されていますので、いつも通り4つのExtensionsがすべてインストールされてSucceededになることを待てば作業完了です。
![finish1.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481267/f262e1da-f52b-af57-7937-5db00aa71e97.jpeg)
![extensions.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481267/d1cec784-2331-f289-dce3-7f3620baa9c5.jpeg)

# まとめ
仮想環境でのアクセスで一部手順通りに進まない箇所はありましたが、一通りのセットアップができることが確認できました。
これまではドキュメントの行間を読みつつSConfigやPowerShellコマンドで設定していた作業がUIでおこなえるのは扱いやすく便利ですね。
一部NICの名称が変更できなかったり、タイムゾーンをJSTに変更できなかったり、細かな設定変更はこれまでの手順も必要そうですが、UIも優れており使いやすいものでした。
また、今回紹介しませんでしたがトラブルシューティングやサポート用のログ収集機能、画面の表示言語変更機能もGIUに備わっておりました。

なお、本機能ではHyper-Vの機能のインストールはおこなわれていませんが、OSインストール後にWindowsの機能を確認すると既にHyper-Vがインストール済みでした。
そのため、このUIからの設定が完了すると、そのままAzureポータルからのクラスター構築に入れそうです。こちらはまた別の機会に確認してみます。