Azure Stack HCI を Azure に接続する

適用対象:Azure Stack HCI バージョン 20H2

Azure Stack HCI オペレーティング システムをデプロイし、クラスターを作成したので、クラスターを Azure に登録する必要があります。 Azure Stack HCI は Azure サービスとして提供され、Azure オンライン サービス条件に従ってインストールから 30 日以内に登録する必要があります。

このトピックでは、監視、サポート、課金、ハイブリッド サービスのために、Azure Stack HCI クラスターを Azure に登録する方法について説明します。 登録時に、オンプレミスの個々の Azure Stack HCI クラスターを表す Azure Resource Manager リソースが作成されます。これにより、Azure 管理プレーンが Azure Stack HCI に効果的に拡張されます。 Azure リソースとオンプレミス クラスターの間で情報が定期的に同期されます。 Azure の登録は Azure Stack HCI オペレーティング システムのネイティブ機能であるため、登録にエージェントは必要ありません。

重要

Azure への登録が必要です。登録がアクティブになるまでクラスターは完全にはサポートされません。 デプロイ時にクラスターを Azure に登録しなかった場合、またはクラスターは登録したが 30 日以上 Azure に接続しなかった場合は、新しい仮想マシン (VM) を作成または追加することはできません。 これが発生した場合は、VM を作成しようとすると、次のエラー メッセージが表示されます。

'vmname' の仮想マシン ロールを構成中にエラーが発生しました。ジョブが失敗しました。"Vmname" のクラスター化されたロールを開くときにエラーが発生しました。アクセスされるサービスには、特定の数の接続のライセンスが付与されています。サービスで受け入れることができる数の接続が既に存在するため、現時点ではサービスにこれ以上接続することはできません。

解決するには、Azure への送信接続を許可し、このトピックの説明に従ってクラスターが登録されていることを確認します。

クラスター登録の前提条件

Azure Stack HCI クラスターを作成しないと、クラスターを Azure に登録することはできません。 クラスターをサポートするには、クラスター ノードが物理サーバーである必要があります。 テストには仮想マシンを使用できます。

最も単純な登録エクスペリエンスの場合は、Azure AD 管理者 (所有者または共同作成者ロールを持つユーザー アクセス管理者) に、Windows Admin Center または PowerShell を使用して、登録プロセスを完了してもらいます。

重要

Azure Stack HCI は、Azure China で使用できるようになりました。 Azure China で Azure Stack HCI クラスターを登録するには、Windows Admin Center バージョン 2103.2 以降を使用してください。 PowerShell を使用してクラスターを登録することもできます。

クラスターを登録する前に、クラスター内のすべてのサーバーが稼働していること、および次の前提条件が満たされていることを確認します。

Windows Admin Center が Azure に登録されている必要があります

Windows Admin Center を使用して Azure Stack HCI クラスターを登録する予定の場合は、まず、Azure に Windows Admin Center を登録して、Azure Active Directory (テナント) ID を指定する必要があります。 Windows Admin Center を実行しているコンピューターが、クラスターの作成に使用されるものと同じ Active Directory ドメインまたは信頼済みドメインに参加していることをご確認ください。

インターネット アクセスとファイアウォールのポート

Azure Stack HCI は、定期的に Azure パブリック クラウドに接続する必要があります。 送信接続が外部の企業ファイアウォールまたはプロキシ サーバーによって制限されている場合は、限られた数の既知の Azure IP でポート 443 (HTTPS) への送信アクセスを許可するように構成する必要があります。 ファイアウォールを準備し、プロキシ サーバーを設定する方法の詳細については、「Azure Stack HCI 用にファイアウォールを構成する」を参照してください。

注意

Az や AzureAD などの必要な PowerShell モジュールの最新バージョンがあることを確認するために、登録プロセスによって PowerShell ギャラリーへの接続が試行されます。 PowerShell ギャラリーは Azure 上でホストされていますが、現在はサービス タグがありません。 送信インターネット アクセスを利用できる管理マシンから上記のコマンドレットを実行できない場合は、モジュールをダウンロードし、Register-AzStackHCI コマンドを実行するクラスター ノードに手動で転送することをお勧めします。 または、切断されたシナリオでモジュールをインストールすることもできます。

Azure のサブスクリプションとアクセス許可

まだ Azure アカウントを持っていない場合は作成します

以下のいずれかの種類の既存のサブスクリプションを使用できます。

  • 学生または Visual Studio サブスクライバー向けの Azure クレジットが付いた無料アカウント
  • クレジット カードを使用した従量課金制サブスクリプション
  • マイクロソフトエンタープライズ契約 (EA) を通じて取得されたサブスクリプション
  • クラウド ソリューション プロバイダー (CSP) プログラムを通じて取得されたサブスクリプション

クラスターを登録するユーザーには、次の Azure サブスクリプション アクセス許可が必要です。

  • リソース プロバイダーを登録する
  • Azure リソースとリソース グループの作成、取得、削除

EA または CSP を介した Azure サブスクリプションの場合、最も簡単な方法は、組み込みの "所有者" ロール (または "ユーザー アクセス管理者" ロールと "共同作成者" ロール) をサブスクリプションに割り当てるように、Azure サブスクリプション管理者に依頼することです。 ただし、管理者によっては、より制限の厳しいオプションを好む場合があります。 この場合は、次の手順に従って、Azure Stack HCI の登録専用のカスタム Azure ロールを作成できます。

  1. 次の内容で customHCIRole.json という json ファイルを作成します。 必ず を Azure サブスクリプション ID に変更してください。 サブスクリプション ID を取得するには、portal.azure.com にアクセスし、[サブスクリプション] に移動して、一覧から ID をコピーして貼り付けます。

    {
      "Name": "Azure Stack HCI registration role",
      "Id": null,
      "IsCustom": true,
      "Description": "Custom Azure role to allow subscription-level access to register Azure Stack HCI",
      "Actions": [
        "Microsoft.Resources/subscriptions/resourceGroups/write",
        "Microsoft.Resources/subscriptions/resourceGroups/read",
        "Microsoft.Resources/subscriptions/resourceGroups/delete",
        "Microsoft.AzureStackHCI/register/action",
        "Microsoft.AzureStackHCI/Unregister/Action",
        "Microsoft.AzureStackHCI/clusters/*",
        "Microsoft.Authorization/roleAssignments/write",
        "Microsoft.HybridCompute/register/action",
        "Microsoft.GuestConfiguration/register/action"
      ],
      "NotActions": [
      ],
    "AssignableScopes": [
        "/subscriptions/<subscriptionId>"
      ]
    }
    
  2. カスタム ロールを作成します。

    New-AzRoleDefinition -InputFile <path to customHCIRole.json>
    
  3. ユーザーにカスタム ロールを割り当てます。

    $user = get-AzAdUser -DisplayName <userdisplayname>
    $role = Get-AzRoleDefinition -Name "Azure Stack HCI registration role"
    New-AzRoleAssignment -ObjectId $user.Id -RoleDefinitionId $role.Id -Scope /subscriptions/<subscriptionid>
    

Azure Active Directory のアクセス許可

登録プロセスを完了するには、適切な Azure Active Directory のアクセス許可も必要です。 まだお持ちでない場合は、Azure AD 管理者に依頼して、アクセス許可の同意を付与するか、委任してもらいます。 詳しくは、「Azure の登録を管理する」をご覧ください。

Windows Admin Center を使用してクラスターを登録する

Azure Stack HCI クラスターを登録する最も簡単な方法は、Windows Admin Center を使用することです。 ユーザーには Azure Active Directory のアクセス許可が必要です。ない場合は、登録プロセスが完了しないどころか、登録が終了し、管理者の承認が保留されたままになります。ユーザーはアクセス許可が付与されたら、登録ウィザードを再実行する必要があります。

Azure Stack HCI バージョン 21H2 プレビューを実行している場合は、ユーザーに Azure の所有者ロールまたはユーザー アクセス管理者ロールを割り当てる必要があります。そうしないと、"Failed to assign required roles for Azure Arc integration" (Azure Arc の統合に必要なロールの割り当てに失敗しました) というエラー メッセージが表示されます。 これらのロールが割り当てられていないユーザーでも、PowerShell を使用してクラスターを登録することはできますが、Azure Arc の統合を手動で無効にする必要があります。

警告

Azure China で Azure Stack HCI クラスターを登録するには、Windows Admin Center バージョン 2103.2 以降を使用してください。

  1. 登録プロセスを開始する前に、まず Windows Admin Center を Azure に登録し、Azure アカウントで Windows Admin Center にサインインする必要があります。

    重要

    Windows Admin Center を Azure に登録するときは、クラスター登録に使用するのと同じ Azure Active Directory (テナント) ID を使用することが重要です。 Azure AD テナント ID は、アカウントとグループを含む Azure AD の特定のインスタンスを表します。一方、Azure サブスクリプション ID は、課金が発生した Azure リソースを使用するための契約を表します。 ご自身のテナント ID を確認するには、portal.azure.com にアクセスし、 [Azure Active Directory] を選択します。 テナント ID は [テナント情報] に表示されます。 Azure サブスクリプション ID を取得するには、 [サブスクリプション] に移動し、一覧から ID をコピーして貼り付けます。

  2. Windows Admin Center を開いて、左側の [ツール] メニューの一番下にある [設定] を選択します。 次に、 [設定] メニューの下部にある [Azure Stack HCI registration](Azure Stack HCI の登録) を選択します。 クラスターがまだ Azure に登録されていない場合、 [Registration status](登録状態)[Not registered](未登録) になります。 続行するには [登録] をクリックします。 Windows Admin Center ダッシュボードから [Register this cluster](このクラスターを登録) を選択することもできます。

    注意

    手順 1 で Windows Admin Center を登録しなかった場合は、ここでそれを行うことを求められます。 クラスター登録ウィザードの代わりに、Windows Admin Center の登録ウィザードが表示されます。

  3. クラスターの登録先となる Azure サブスクリプション ID を指定します。 Azure サブスクリプション ID を取得するには、portal.azure.com にアクセスし、 [サブスクリプション] に移動して、一覧から ID をコピーして貼り付けます。 Azure AD 管理者から、使用する Azure リソース グループが指定されている場合は、ドロップダウン メニューからそれを選択します。それ以外の場合は、 [新規作成] を選択します。 ドロップダウン メニューから Azure リージョンを選択し、 [登録] をクリックします。

    クラスター登録ウィザードによって、Azure サブスクリプション ID、リソース グループ、リージョンが求められます

  4. Azure Active Directory の十分なアクセス許可がある場合は、これでクラスター登録ワークフローが完了し、Azure portal でクラスターを確認できるようになります。 Azure Active Directory の追加のアクセス許可が必要とのメッセージを受け取った場合は、手順 5 に進んでください。

  5. Azure Active Directory の十分なアクセス許可がない場合は、アプリにアクセス許可を付与するように Azure AD 管理者に依頼する必要があります。 次のスクリーンショットのように、クラスターの特定のアプリ ID に移動する Azure portal へのリンクが表示されます。 このリンクをコピーし、Azure AD 管理者に提供してください。同意が与えられたかどうかを確認するには、 [Azure AD で同意を表示] を選択します。 同意が与えられたら、上記の手順 2 から始めてウィザードを再実行します。

    クラスターを登録するために Azure Active Directory の追加のアクセス許可が必要な場合は、Azure AD 管理者に提供するためのリンクが表示されます

PowerShell を使用してクラスターを登録する

管理 PC を使用して Azure Stack HCI クラスターを Azure に登録するには、次の手順を使用します。

重要

Azure Stack HCI バージョン 21H2 プレビューを実行している場合は、所有者またはユーザー アクセス管理者のロールを持つ Azure ユーザーだけが、Azure Stack HCI クラスターを Azure Arc 統合に登録できます。

  1. 管理 PC に必要なコマンドレットをインストールします。 Azure Stack HCI の最新の一般提供 (GA) またはパブリック プレビューのイメージからデプロイされたクラスターを登録する場合は、次のコマンドを実行するだけです。 2020 年 12 月 10 日より前にデプロイされたクラスターの場合は、Azure への登録を試みる前に、クラスター内の各サーバーに 2020 年 11 月 23 日のプレビュー更新プログラム (KB4586852) を必ず適用しておきます。

    Install-Module -Name Az.StackHCI
    

    注意

    • "今すぐ PowerShellGet で NuGet プロバイダーをインストールしてインポートしますか? " などのプロンプトが表示される場合があります。これには [はい] (Y) と答える必要があります。
    • さらに " 'PSGallery' からモジュールをインストールしますか? " というプロンプトが表示されたら、 [はい] (Y) と答えます。
  2. クラスター内の任意のサーバーの名前を使用して登録を実行します。 Azure サブスクリプション ID を取得するには、portal.azure.com にアクセスし、 [サブスクリプション] に移動して、一覧から ID をコピーして貼り付けます。

    重要

    Azure China で Azure Stack HCI を登録しようとしている場合は、次の追加のパラメーターを指定して Register-AzStackHCI コマンドレットを実行します。

    -EnvironmentName AzureChinaCloud -Region "ChinaEast2"

    Register-AzStackHCI  -SubscriptionId "<subscription_ID>" -ComputerName Server1
    

    この構文では、(Server1 がメンバーである) クラスターを現在のユーザーとして既定の Azure リージョンとクラウド環境に登録し、Azure リソースとリソース グループにスマートな既定の名前を使用します。 また、このコマンドに省略可能な -Region-ResourceName-TenantId-ResourceGroupName パラメーターを追加して、これらの値を指定することもできます。

    注意

    Azure Stack HCI バージョン 21H2 プレビューを実行している場合は、Register-AzStackHCI コマンドレットを実行すると、クラスター内のすべてのサーバーで Azure Arc 統合が既定で有効になります。また、それを実行するユーザーは、Azure の所有者またはユーザー アクセス管理者である必要があります。 サーバーを Arc 対応にしない場合、または適切なロールを持っていない場合は、次の追加パラメーターを渡します: -EnableAzureArcServer:$false

    Register-AzStackHCI コマンドレットを実行するユーザーには Azure Active Directory のアクセス許可が必要であることに注意してください。そうしないと、登録プロセスが完了しないまま終了し、その登録は管理者の同意待ちのままになります。 アクセス許可が付与されたら、Register-AzStackHCI を再実行して登録を完了します。

  3. Azure での認証

    登録プロセスを完了するには、Azure アカウントを使用して認証 (サインイン) する必要があります。 登録を続行するには、上記の手順 2 で指定した Azure サブスクリプションへのアクセス権がアカウントに必要です。 提供されたコードをコピーし、別のデバイス (ご自分の PC や携帯電話など) で microsoft.com/devicelogin に移動して、コードを入力し、そこにサインインします。 登録ワークフローではログインしたことが検出され、完了に進みます。 その後、Azure portal でクラスターを確認できるようになります。

Azure Arc 統合の有効化

Azure Stack HCI バージョン 21H2 プレビューを実行していて、2021 年 6 月 15 日以降に初めてクラスターを Azure に登録した場合は、クラスターを登録したユーザーが Azure の所有者またはユーザー アクセス管理者のロールを持っている限り、クラスター内のすべてのサーバーが既定で Azure Arc 対応になります。 さらに実行する必要のあるアクションはありません。 一方、その日より前にクラスターを登録した場合は、以下の手順を実行して、サーバーでの Azure Arc 統合を有効にする必要があります。

注意

現在、Azure Arc 統合は、Azure Stack HCI バージョン 21H2 プレビューでのみ使用できます。

  1. 管理 PC に Az.StackHCI モジュールの最新バージョンをインストールします。

    Install-Module -Name Az.StackHCI
    
  2. Register-AzStackHCI コマンドレットを再度実行し、Azure サブスクリプション ID を指定します。これは、クラスターを最初に登録したときと同じ ID である必要があります。 -ComputerName パラメーターには、クラスター内の任意のサーバーの名前を指定できます。 このステップにより、クラスター内のすべてのサーバーで Azure Arc 統合が有効になります。 現在のクラスターの Azure への登録に影響はなく、最初にクラスターの登録を解除する必要はありません。

    Register-AzStackHCI  -SubscriptionId "<subscription_ID>" -ComputerName Server1
    

    重要

    クラスターを最初に登録するときに使用した -Region-ResourceName、または -ResourceGroupName が、既定の設定と異なる場合は、それらと同じパラメーターと値をここで指定する必要があります。 Get-AzureStackHCI を実行すると、これらの値が表示されます。

  3. Azure Arc 統合が失敗した場合、プロキシ サーバー経由でサーバーの通信が必要になる場合があります。 これを解決するには、クラスター内の各サーバーで管理者として次の PowerShell コマンドを実行して、プロキシ サーバー環境変数を設定します。

    [Environment]::SetEnvironmentVariable("https_proxy", "http://{proxy-url}:{proxy-port}", "Machine")
    $env:https_proxy = [System.Environment]::GetEnvironmentVariable("https_proxy","Machine")
    # For the changes to take effect, the agent service needs to be restarted after the proxy environment variable is set.
    Restart-Service -Name himds
    

    その後、Azure Stack HCI クラスターを再登録します。

トラブルシューティング

Azure Stack HCI の登録に関する問題のトラブルシューティングを行うには、クラスター内の各サーバーから PowerShell 登録ログと hcisvc デバッグ ログの両方を調べる必要があります。

PowerShell 登録ログを収集する

Register-AzStackHCI および Unregister-AzStackHCI コマンドレットを実行すると、各試行に対して RegisterHCI_{yyyymmdd-hhss}.logUnregisterHCI_{yyyymmdd-hhss}.log という名前のログ ファイルが作成されます。 これらのファイルは、コマンドレットが実行される PowerShell セッションの作業ディレクトリに作成されます。 既定では、デバッグ ログは含められません。 追加のデバッグ ログを必要とする問題が発生した場合、Register-AzStackHCI または Unregister-AzStackHCI を実行する前に次のコマンドレットを実行して、デバッグ設定を Continue に設定します。

$DebugPreference = 'Continue'

オンプレミスの hcisvc ログを収集する

hcisvc のデバッグ ログを有効にするには、クラスター内の各サーバーで、PowerShell で次のように実行します。

wevtutil.exe sl /q /e:true Microsoft-AzureStack-HCI/Debug

ログを取得するには、次のようにします。

Get-WinEvent -Logname Microsoft-AzureStack-HCI/Debug -Oldest -ErrorAction Ignore

一般的な登録の問題

登録時には、クラスター内の各サーバーが、Azure への送信インターネット接続ができる状態で稼働している必要があります。 Register-AzStackHCI コマンドレットは、クラスター内のすべてのサーバーと通信して、それぞれの証明書をプロビジョニングします。 各サーバーはその証明書を使用して、クラウド内の HCI サービスに対する API 呼び出しを行い、登録を検証します。

登録に失敗した場合は、次のメッセージが表示されることがあります。

登録できませんでした。ノード {Node1、Node2} で自己署名証明書を生成できませんでした。ノード {Node1、Node2} で登録証明書を設定および確認できませんでした

エラー メッセージの "ノードで自己署名証明書を生成できませんでした" の後にノード名がある場合は、それらのサーバーで証明書を生成できていません。 トラブルシューティング方法は次のとおりです。

  1. 上記のメッセージに示されている各サーバーが稼働中であることを確認します。 sc.exe query hcisvc を実行して hcisvc の状態を確認し、必要な場合は start-service hcisvc で起動できます。

  2. エラー メッセージに示されている各サーバーが、Register-AzStackHCI コマンドレットが実行されているコンピューターに接続されていることを確認します。 これを確認するには、Register-AzStackHCI を実行しているコンピューターから次のコマンドレットを実行し、New-PSSession を使用してクラスター内の各サーバーに接続し、動作することを確認します。

    New-PSSession -ComputerName {failing nodes}
    

"ノードで登録証明書を設定および確認できませんでした" というエラー メッセージの後にノード名がある場合は、サーバーで証明書を生成できましたが、サーバーは HCI クラウド サービス API を正常に呼び出すことができませんでした。 トラブルシューティング方法は次のとおりです。

  1. 各サーバーが、Azure Stack HCI クラウド サービスやその他の必要な Azure サービス (Azure Active Directory など) と通信するために必要なインターネット接続を備えていること、およびファイアウォールによってブロックされていないことを確認します。 「Azure Stack HCI 用にファイアウォールを構成する」を参照してください。

  2. Test-AzStackHCIConnection コマンドレットを実行し、成功することを確認します。 このコマンドレットは、接続をテストするための HCI クラウド サービスの正常性エンドポイントを呼び出します。

  3. エラー メッセージに表示されている各ノードの hcisvc デバッグ ログを確認します。

    • "ExecuteWithRetry operation AADTokenFetch failed after all retries"(ExecuteWithRetry 操作の AADTokenFetch がすべての再試行後に失敗しました) または"ExecuteWithRetry operation AADTokenFetch succeeded in retry"(ExecuteWithRetry 操作の AADTokenFetch が再試行に成功しました) のいずれかで失敗する前に、"ExecuteWithRetry operation AADTokenFetch failed with retryable error"(ExecuteWithRetry 操作の AADTokenFetch が再試行可能なエラーで失敗しました) というメッセージが何度か表示されてもかまいません。
    • "ExecuteWithRetry operation AADTokenFetch failed after all retries"(ExecuteWithRetry 操作の AADTokenFetch がすべての再試行後に失敗しました) がログに現れた場合、すべての再試行後でもサービスから Azure Active Directory トークンをフェッチできませんでした。 関連する AAD 例外がこのメッセージと共にログに記録されます。
    • "AADSTS700027: Client assertion contains an invalid signature. [Reason - The key used is expired. Thumbprint of key used by client: '{SomeThumbprint}', Found key 'Start=06/29/2021 21:13:15, End=06/29/2023 21:13:15'" (AADSTS700027: クライアント アサーションに無効な署名が含まれています。理由 - 使用されたキーの有効期限が切れました。クライアントで使用されているキーの拇印: '{SomeThumbprint}', 見つかったキー 'Start=06/29/2021 21:13:15, End=06/29/2023 21:13:15') が表示された場合、これはサーバーでの時間の設定方法に関する問題です。 PowerShell で [System.DateTime]::UtcNow を実行してすべてのサーバーの UTC 時刻を確認し、実際の UTC 時刻と比較します。 時刻が正しくない場合は、サーバーの時刻を適切に設定してから、登録を再試行してください。

次のステップ

この記事に関連する次の管理タスクを実行するには、以下を参照してください。