🍞

Azure Stack HCI のラボ (Jumpstart HCIBox 23H2) を展開してみよう

2024/02/09に公開

はじめに

Azure Stack HCI は、Microsoft のハイブリッド環境向けソリューションの 1 つです。
"Azure Stack HCI OS" という、専用の OS が提供されており、この HCI OS をインストールしたサーバーを基本的には複数台クラスタリングして利用します。(クラスタリングしない単体利用も可能です)

この Azure Stack HCI の最新バージョンである 23H2 がリリースされました!

本来、Azure Stack HCI は、試すためには 物理ハードが必要になります。
ですが、Azure 上に入れ子になった仮想化が有効化された VM 上に環境が一式簡単に用意できる Jumpstart HCIBox というラボ環境が提供されています!
23H2 版が提供されていますので、今回こちらを展開してみることとしました!

さっそく試してみる

0. 作業用PCの構成 (Azure Developer CLI のインストール等)

今回は Azure Developer CLI を利用して、ラボ環境を展開してみました。
参考まで、Azure Developer CLI 等のインストール手順を載せておきます。
なお、私の手元の環境では Azure CLI もちゃんとログインをしないと処理が進まなかったため、一応、Azure CLI も含めたインストール手順を記載しておきます。

参考画面キャプチャ:Azure Developer CLI + Azure CLI + Git のインストール

0-1. Azure Developer CLI

Azure Developer CLI をインストールします。
PowerShell を起動し、以下のコマンドを実行します。

azd のインストール
powershell -ex AllSigned -c "Invoke-RestMethod 'https://aka.ms/install-azd.ps1' | Invoke-Expression"

0-2. Azure CLI

Azure CLI をインストールします。
PowerShell を起動し、以下のコマンドを実行します。

Azure CLI のインストール
$ProgressPreference = 'SilentlyContinue'; Invoke-WebRequest -Uri https://aka.ms/installazurecliwindows -OutFile .\AzureCLI.msi; Start-Process msiexec.exe -Wait -ArgumentList '/I AzureCLI.msi /quiet'; Remove-Item .\AzureCLI.msi

32 ビットの Azure CLI が、C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2 にインストールされます。

0-3. Git

Git をインストールします。
Click here to download を選ぶか、Standalone Installer - 64bitを選ぶと、インストーラをダウンロードできます。
インストーラーを起動後は、全て既定値のままインストールを進めていきます。

1. 環境の準備

前述の通り、今回は Azure Developer CLI を利用して、ラボ環境を展開します。
基本的には、手順は Deploy HCIBox infrastructure with Azure Developer CLI に記載されています。

1-1. Jumpstart HCIBox リポジトリをクローン

以下のコマンドを実行して、Jumpstart HCIBox のリポジトリをクローンします。

Jumpstart HCIBox リポジトリをクローン
git clone https://github.com/microsoft/azure_arc.git

クローンしたリポジトリ azure_arc 内の azure_jumpstart_hcibox ディレクトリに移動します。

ディレクトリ移動
cd .\azure_arc\azure_jumpstart_hcibox

1-2. Azure ログイン( azd auth login , az login )

前述の通り、私の手元の環境では Azure CLI もちゃんとログインをしないと処理が進まなかったため、一応、合わせて記載しておきます。

それぞれ、実行するとブラウザが立ち上がり、 Azure への認証画面が表示されますのでログインを行います。
なお、複数テナントに所属している場合は、以下のように --tenant-id を指定し、しっかりと、対象サブスクリプション がある テナントID を指定してログインを行います。

Azure Developer CLI の Azure 認証
azd auth login --tenant-id <テナントID>
AZ CLI 認証
az login --tenant-id <テナントID>

1-3. Azure Developer CLI 新しいアプリケーション を初期化

azd init で初期化を行います。
環境名を指定しますが、ここで指定した環境名は、後で展開するリソース名の接頭辞になります。
例えば、 hcibox とした場合、作成されるリソースグループ名は hcibox-rg となります。

Azure Developer CLI の初期化
azd init

2 . Jumpstart HCIBox を展開

2-1 . Azure Developer CLI で、Azure IaaS VM を展開

まずはAzure 上に VM を中心としたいくつかのリソースを展開します。
このとき展開される VM は、今後 入れ子になった仮想化を有効化し、nested で Azure Stack HCI ノードx2 や 管理用VM などの展開先となる VM です。
そのため以下のような大きなサイズとなります。

  • SKU : Standard E32s v5 (32 vcpu 数、256 GiB メモリ)
  • OSDisk : Premium SSD LRS 1024 GiB x 1
  • DataDisk : Premium SSD LRS 256 GiB x 8

azd up で展開を行います。

Azure Developer CLI でリソースの展開
azd up

デプロイするサブスクリプションを、キーボードの上下キーで選択し、Enter で決定します。
また、同様に、デプロイするリージョンを選択します。

Windows Admin Username [arcdemo] : という形で 管理者ユーザー名 の設定を求められますので、入力します。
続けて、 Bastion を利用するか、 RDP を利用するかを選択します。今回は Bastion を利用することを選択しました。
その後、Windows の管理者ユーザのパスワードを設定するよう求められますので、入力します。
最後に、これまでの設定情報(ユーザー名等) を保存するかを選択します。保存するとした場合は、\azure_arc\azure_jumpstart_hcibox\.azure\hcibox に保存されます。

そのまま待つこと、約30分程度で、まずは Azure VM のデプロイが完了しました。 (29 minutes 3 seconds)

2-2. Azure VM へログインして、スクリプトを実行

デプロイされた Azure VM にログインして、入れ子になった仮想化を利用した Azure Stack HCI ノードx2 や 管理用VM などの展開を行うためのスクリプトを実行させます。
これ以降の手順について、Jumpstart HCIBox での該当ページは、Start post-deployment automation です。

Azure Portal を開くと、<環境名>-rg という名前のリソースグループが作成されているはずです。リソースグループ内には、 HCIBox-Client という VM があるはずですので、設定した 管理者ユーザー名/パスワード で、ログインします。

HCIBox-Client へログインしさえすれば、自動的に PowerShell が立ち上がり、スクリプトが自動的に起動されて実行されます。
(しばらく待って進んで無さそうであれば、 Enter を数回押してみると良いかも)

2時間程度で、HCIBox-Client 内に Azure Stack HCI ノードx2 (AzSHost1, AzSHost2) や 管理用VM(AzSMGMT) が展開されます。
展開されると、[Azure Portal] - [Azure Arc] に、Azure Stack HCI が登録されるはずです。

ただし、現時点では、独立した2つの Azure Stack HCI OS インストール済みマシンが Azure Arc 登録されているにすぎず、まだ クラスタリング はされていません。
そこで、以降の手順で、Azure Stack HCI クラスターの検証と構成を行います。

2-3. Azure Stack HCI クラスターの検証にあたり必要な権限の設定

Azure Stack HCI クラスターの検証にあたり、Azure Stack HCI クラスターを登録するリソースグループに対して、キー コンテナー管理者の役割を割り当てます。
Azure Portal から <環境名>-rg を開き、 [アクセス制御 (IAM)] - [ロールの割り当て] から、キー コンテナー管理者 の役割を割り当てます。

2-4. Azure Stack HCI クラスターの検証

HCIBox-Client 内には C:\HCIBox というフォルダーが作成されています。
フォルダ内には、hci.jsonhci.parameters.json というファイルがあるはずなので、それぞれ、開きます。

なおこのファイルは、ARM テンプレート と、そのパラメータファイルであり、本来の手順の、以下箇所までを skip している形になっています。
Azure Resource Manager デプロイ テンプレートを使用して Azure Stack HCI バージョン 23H2 をデプロイする - 手順 3: ARM テンプレートを使用してデプロイする
この ARM テンプレートを利用して、Azure Stack HCI クラスターを構成します。

Azure Portal にログインし、[カスタムテンプレートのデプロイ] を開きます。

[エディターで独自のテンプレートを作成する] を開きます。

右側のエディターに、先ほどの hci.json の内容を貼り付け、保存します。

続いて、パラメーターの編集を開き、先ほどの hci.parameters.json の内容を貼り付けて、保存します。

リソースグループ 欄以外は、指定された状態になるはずです。リソースグループには先ほど権限を設定した <環境名>-rg を指定し、確認と作成 に進んで、検証を開始します。

15分程で、検証が完了しました。

2-5. Azure Stack HCI クラスターの構成

検証が完了すると、Azure Arc の [Azure Stack HCI] 欄に、Azure Stack HCI クラスターのリソースが登録(仮登録といったほうがいいかもしれませんが)されているはずです。
クラスターリソースを開くと、上部にバナーで、検証は完了したが、まだデプロイはされていない旨が、表示されます。

バナーのリンクを開き、クラスタの構成を開始します。

私の場合には、およそ合計で 3 時間程度で構成が完了しました。
なお、途中で HCIBox-Client の VM自体 を夜間に一時的に停止し、翌朝再開させるような形でクラスタの構成作業を中断させてしまいました。が、それでも特に何事もなく、自動的に処理は再開され、無事構築が完了しました。
参考までに、全ステップを載せておきます。

3. できあがり

Azure Stack HCI クラスターの構成が完了しました!
できあがった環境を、少し Azure Portal から覗いてみます。



出来上がった環境で何を試すか、ですが、まずは基本中の基本として、VM を立ててみるのが良さそうです。
すでにリソースブリッジ等も展開されているので、Azure Portal から、Azure Marketplace で提供されている OS イメージを利用して、VM を立てることができます。
基本的には、Azure Stack HCI クラスター内に OSイメージを保存し、次に、そのイメージを使って Azure Stack HCI で Arc 仮想マシンを作成する、といった流れになります。
Jumpstart HCIBOX 上で試す際の手順としては Virtual machine provisioning with Azure Arc が、案内されています。
公式ドキュメント的には、このあたりです。

現在のOSバージョン の リンク を開くと、最新ではなく、若干古いバージョンであることがわかります。
検証する内容によっては、最新のバージョンに更新する必要がありそうです。

Azure Portal から Azure Stack HCI クラスターをデプロイする方法(Ignite参考動画)

2-4. ~ 2-5 までの箇所、Azure Portal からデプロイする方法については、2023年11月 Microsoft Ignite 2023 でのデモが参考になるかと思います。
https://www.youtube.com/watch?v=t81MNUjAnEQ&t=96s

参考 Link

Microsoft (有志)

Discussion