850 Views
November 12, 22
スライド概要
Windows Server & Cloud User Group Japan 第32回勉強会の資料です。
Azure Arc Jumpstart で新しく提供された HCI Box について紹介します。
インフラエンジニア
Azure Arc Jumpstart Update HCIBox Edition SCUGJ (wSCUGJ) 勉強会 #32 2022-11-12 Kazuki Takai - Windows Server & Cloud User Group Japan
お話しすること • HCIBox について • HCIBox を利用開始するまでの流れ • 以下はお話ししません • ArcBox について • 以前の勉強会資料をご確認ください • Azure Arc, Azure Stack HCI そのものについて • Bicep そのものについて
自己紹介 • たかい (Kazuki Takai) • 会社員 (某ISP勤務) • サービス基盤開発、技術開発 • ライセンス関連 • wSCUGJ • 興味分野:統合管理、ID、自動化、セキュリティ、監視・運用 • 趣味:カメラ(風景写真)、ビデオゲーム、旅行(温泉) • Microsoft MVP for Cloud and Datacenter Management
注意点 • 本セッションでは、リリース前の機能についてお話しします • 仕様等が変更となる可能性があります • HCIBox は現時点で Public Preview です • 本セッションのサンプルコードは、Bash 上で実行する想定 で記載されています • PowerShell やコマンドプロンプトから実行する場合は、エスケー プ処理などを適切に読み替えてください
Azure Arc Jumpstart HCIBox とは • Azure Stack HCI のお試し環境を Azure 上に簡 単に構築する仕組みを提供 • Azure VM 上で Nested virtualization を使用して、 オンプレミス相当の環境を疑似的に構成 • PoC やデモ環境、ハンズオンなどでの利用を想定 https://azurearcjumpstart.io/azure_jumpstart_hcibox/
HCIBox の特徴 • お手軽 • 物理的なハードウェアの準備が不要 • 必要なすべてのリソースは、Azure サブスクリプション の中に作成(したリソース上で稼働) • あくまで一時的な検証用 • セキュリティの観点では、目を瞑っていることが多い • Azure サブスクリプションは検証用に(専用に)確保し たほうが良い
HCIBox のアーキテクチャー https://azurearcjumpstart.io/azure_jumpstart_hcibox/ より引用
HCIBox の構成 https://azurearcjumpstart.io/azure_jumpstart_hcibox/ より引用
HCIBox の構成 ホスト名 役割 HCIBox-Client 基盤となる Azure VM ホスト AzSHOST1 Azure Stack HCI Node #1 AzSHOST2 Azure Stack HCI Node #2 AzSMGMT 管理系の VM を Nested で動 かすための Hyper-V ホスト JumpstartDC Domain Controller AdminCenter Windows Admin Center Gateway Server Bgp-Tor-Router Remote Access Server jumpstart.local ドメイン参加 親ホスト (稼働ホスト) OS (Azure) Windows Server 2022 ✔ HCIBox-Client Azure Stack HCI ✔ HCIBox-Client Azure Stack HCI HCIBox-Client Windows Server 2022 ✔ AzSMGMT Windows Server 2022 ✔ AzSMGMT Windows Server 2022 AzSMGMT Windows Server 2022
HCIBox の展開に必要なもの • Azure Subscription • Standard DSv4 Family の使用可能コア数が 16 – 52 以上 • テナントとサブスクリプションを操作可能なアカウント • Azure AD に対してサービスプリンシパルを作成可能 • サブスクリプションの IAM 設定を変更可能 • Az CLI と git コマンドが使用可能な環境 • Azure Cloud Shell • Windows Terminal
展開可能なリージョン • East US • East US 2 • West US 2 • North Europe ※11/11 Public Preview 時点の情報です
デプロイ処理のフロー https://azurearcjumpstart.io/azure_jumpstart_hcibox/ より引用
デプロイ手順 1. 前提条件の確認 2. リソースプロバイダーの登録 3. サービスプリンシパルの作成 4. SSH キーペアの作成 5. パラメーターファイルの修正 6. デプロイ 7. デプロイ後スクリプトの実行
前提条件の確認 • Azure CLI のバージョンが 2.40.0 以上であること • az --version • Az CLI にログインしていること • az login • az account show | grep -E '[Nn]ame' | grep -vF '@' • az account set -n "<Subscription Name>" • DSv5-series vCPUs の空きが 48 以上あること • 次頁
vCPU のクォータ・デプロイ可能数の確認
• az vm list-usage --location eastus --query
"[?(name.value == ¥`cores¥` || name.value ==
¥`virtualMachines¥` || name.value ==
¥`standardDSv5Family¥`)].{Name:localName,
Current:currentValue, Limit:limit}" --output table
リソースプロバイダーの登録 • az provider register --namespace Microsoft.HybridCompute --wait • az provider register --namespace Microsoft.GuestConfiguration --wait • az provider register --namespace Microsoft.Kubernetes --wait • az provider register --namespace Microsoft.KubernetesConfiguration --wait • az provider register --namespace Microsoft.ExtendedLocation --wait • az provider register --namespace Microsoft.AzureArcData --wait • az provider register --namespace Microsoft.OperationsManagement --wait • az provider register --namespace Microsoft.AzureStackHCI --wait • az provider register --namespace Microsoft.ResourceConnector --wait
リソースプロバイダーの登録確認 • az provider list --output=table | grep -E '^Microsoft¥.(HybridCompute|GuestConfiguration|Kuber netes(Configuration)?|ExtendedLocation|Azure(ArcData |StackHCI)|OperationsManagement|ResourceConnector)'
サービスプリンシパルの作成 • Owner ロールを持つサービスプリンシパルを作成 • spName="SCUGJ32-JumpstartHCIBox" • az ad sp create-for-rbac -n $spName --role "Owner" -scopes /subscriptions/$(az account show --query id -output tsv) appId, password, tenant は使うのでメモ
デプロイの準備 • デプロイに使用するテンプレートを取得 • git clone https://github.com/microsoft/azure_arc.git • Bicep CLI のインストール(アップグレード) • az bicep upgrade
デプロイパラメーターファイルの修正 • Bicep のパラメータファイルを編集 • cd ./azure_arc/azure_jumpstart_hcibox/bicep/ • vi main.parameters.json • 最低限、作成したサービスプリンシパルの情報を設定 • spnClientId • spnClientSecret • spnTenantId
デプロイパラメーターファイルの修正 パラメーター名 設定する値 spnClientId サービスプリンシパルの ID (appId) spnClientSecret サービスプリンシパルのシークレット (password) spnTenantId サービスプリンシパルを作成した Azure AD のテナント ID (tenant) windowsAdminUsername デプロイする Windows VM の管理者アカウント名 windowsAdminPassword 上記管理者アカウントのパスワード logAnalyticsWorkspaceName この環境用に新規にデプロイする Log Analytics ワークスペースの名前 deployBastion デプロイする VM へ Bastion 経由で接続を行う場合は true VM の Global IP Address を指定して直接 RDP 接続する場合は false
デプロイ • Bicep を使用してデプロイを実施 • rgName="SCUGJ32-HCIBox" • az group create --name $rgName --location eastus • az deployment group create -g $rgName -f "main.bicep" -p "main.parameters.json"
デプロイ • Bicep テンプレートによる Azure リソースのデプロイ • 20分程度かかる
デプロイ後の自動処理 • デプロイ完了後、HCIBox-Client へログオン • パラメーターとして指定したユーザーとパスワードを使用 • Global IP 経由で接続する場合、NSG の設定変更が必要 • HCIBox-NSG で RDP のインバウンド接続を許可 • ログオンすると PowerShell Script が実行される • 完了するまで待つ(3~4時間程度!) • デスクトップ背景が変更されたら完了
デプロイ後の自動処理(補足) • 現時点では、Azure Stack HCI クラスターリソースを East US リージョンへ登録しようとする • Post deployment script の中にハードコーディングされている • East US にリソースを作成できない場合、デプロイに失敗する • 現時点では、Post deployment の中で、Arc-enabled server リソース用のリソースグループが新規作成される • Register-AzStackHCI の制約により、HCI Cluster とクラスター上の Arc-enabled server を同一のリソースグループに混在できないため • サービスプリンシパルにリソースグループの作成権限がないと、デプロ イに失敗する
デプロイされるリソース
デプロイされるリソース
HCIBox-Client 上に生成される VM • Azure Stack HCI 用の VM (2台) • AzSHOST1 • AzSHOST2 • 管理用の VM (1台) • AzSMGMT
ハマるかもしれないポイント • Cloud Shell で az ad コマンドを実行するとエラーになる • Failed to connect to MSI. Please make sure MSI is configured correctly. Get Token request returned: <Response [400]> • おそらくバグです • (本来必要ないですが)明示的に az login してください • https://github.com/Azure/azurecli/issues/11749#issuecomment-570975762
まとめ • HCIBox を使うとお手軽に PoC 環境を作成可能 • ハードウェアが無くても Azure Stack HCI 環境を お試しできるので便利 ※お金はかかります • Azure デプロイ後の初期構成に結構時間がかかる ので注意
参考情報
参考資料 • Azure Arc Jumpstart • https://azurearcjumpstart.io/ • Azure Arc Jumpstart HCIBox • https://azurearcjumpstart.io/azure_jumpstart_hcibox/