将 Azure Stack HCI 连接到 Azure

适用于:Azure Stack HCI,版本 20H2

根据 Azure 在线服务条款,Azure Stack HCI 作为 Azure 服务提供,需要在安装后 30 天内进行注册。 本主题介绍如何将用于监视、支持、计费和混合服务的 Azure Stack HCI 群集注册到 Azure。 注册后,将创建一个 Azure 资源管理器资源来表示每个本地 Azure Stack HCI 群集,从而有效地将 Azure 管理平面扩展到 Azure Stack HCI。 信息会定期在 Azure 资源和本地群集之间进行同步。 Azure 注册是 Azure Stack HCI 操作系统的本机功能,因此不需要注册代理。

重要

需要向 Azure 注册,并且在注册处于活动状态之前,群集不会获得完整的支持。 如果未在部署时将群集注册到 Azure,或者群集已注册但未连接到 Azure 的时间超过 30 天,系统将不允许创建或添加新的虚拟机 (VM)。 出现这种情况时,将在尝试创建 VM 时看到以下错误消息:

“为‘vmname’配置虚拟机角色时失败。作业失败。打开“vmname”群集角色时出错。要访问的服务被授权用于特定数量的连接。此时无法与该服务建立更多连接,因为已存在该服务可以接受的连接数。”

解决方法是允许与 Azure 建立出站连接,并确保群集已注册,如本主题中所述。

群集注册的先决条件

需要先创建 Azure Stack HCI 群集,才能向 Azure 注册群集。 为了使群集获得支持,群集节点必须是物理服务器。 可以使用虚拟机进行测试。

为获得最简单的注册体验,请让 Azure AD 管理员(所有者或用户访问管理员)使用 Windows Admin Center 或 PowerShell 完成注册过程。

重要

Azure Stack HCI 现已在 Azure 中国区推出。 若要在 Azure 中国区注册 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 域或受信任的域。

Internet 访问和防火墙端口

Azure Stack HCI 需要定期连接到 Azure 公有云。 如果出站连接受到外部公司防火墙或代理服务器的限制,则必须将它们配置为允许在有限数量的已知 Azure IP 上对端口 443 (HTTPS) 进行出站访问。 有关如何准备防火墙和设置代理服务器的信息,请参阅为 Azure Stack HCI 配置防火墙

备注

注册过程将尝试与 PowerShell 库联系以验证你是否具有所需的最新版本 PowerShell 模块(例如 Az 和 AzureAD)。 尽管 PowerShell 库托管在 Azure 上,但它目前没有服务标记。 如果无法从具有出站 Internet 访问权限的管理计算机上运行上述 cmdlet,建议下载这些模块,并手动将它们传输到要运行 Register-AzStackHCI 命令的群集节点。 或者,你可以在断开连接的情况下安装模块

Azure 订阅和权限

如果还没有 Azure 帐户,请创建一个

注册群集的用户必须具有 Azure 订阅权限才能执行以下操作:

  • 注册资源提供程序
  • 创建/获取/删除 Azure 资源和资源组

如果 Azure 订阅是通过 EA 或 CSP 获得的,最简单的方法是请求 Azure 订阅管理员向你的订阅分配内置的“所有者”或“用户访问管理员”Azure 角色。 但是,某些管理员可能更倾向于使用更严格的选项。 在这种情况下,可以通过执行以下步骤创建一个特定于 Azure Stack HCI 注册的自定义 Azure 角色:

  1. 使用以下内容创建名为 customHCIRole.json 的 json 文件。 确保将 更改为你的 Azure 订阅 ID。 若要获取订阅 ID,请访问 portal.azure.cn,导航到“订阅”,然后从列表中复制/粘贴你的 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 所有者或用户访问管理员角色,否则他们会看到错误消息:“无法为 Azure Arc 集成分配所需的角色”。 尚未获得这些角色的用户仍可使用 PowerShell 注册群集,但他们必须手动禁用 Azure Arc 集成。

警告

若要在 Azure 中国区注册 Azure Stack HCI 群集,请确保使用 Windows Admin Center 2103.2 或更高版本。

  1. 在开始注册过程之前,必须先向 Azure 注册 Windows Admin Center,并使用 Azure 帐户登录到 Windows Admin Center。

    重要

    向 Azure 注册 Windows Admin Center 时,务必使用计划用于群集注册的同一 Azure Active Directory(租户)ID。 Azure AD 租户 ID 表示包含帐户和组的 Azure AD 的特定实例,而 Azure 订阅 ID 表示使用 Azure 资源的协议,该协议会产生费用。 若要查找租户 ID,请访问 portal.azure.cn 并选择“Azure Active Directory”。 租户 ID 将显示在“租户信息”下。 若要获取订阅 ID,请导航到“订阅”,然后从列表中复制/粘贴你的 ID。

  2. 打开 Windows Admin Center,然后从左侧的“工具”菜单的最底部选择“设置” 。 然后从“设置”菜单的底部选择“Azure Stack HCI 注册” 。 如果尚未向 Azure 注册群集,则“注册状态”将显示“未注册” 。 单击“注册”按钮以继续操作。 还可以从 Windows Admin Center 仪表板中选择“注册此群集”。

    备注

    如果你未在步骤 1 中注册 Windows Admin Center,系统此时会要求你进行注册。 你会看到 Windows Admin Center 注册向导,而不是群集注册向导。

  3. 指定要向其注册群集的 Azure 订阅 ID。 若要获取 Azure 订阅 ID,请访问 portal.azure.cn,导航到“订阅”,然后从列表中复制/粘贴你的 ID。 如果你的 Azure AD 管理员提供了一个 Azure 资源组供你使用,请从下拉菜单中选择它;否则,请选择“新建”。 从下拉菜单中选择 Azure 区域,然后单击“注册”。

    群集注册向导将要求你提供 Azure 订阅 ID、资源组和区域

  4. 如果你有足够的 Azure Active Directory 权限,群集注册工作流现在应会继续完成,你应该能够在 Azure 门户中看到你的群集。 如果收到需要其他 Azure Active Directory 权限的消息,请转到步骤 5。

  5. 如果没有足够的 Azure Active Directory 权限,需要请求 Azure AD 管理员向应用授予权限。 如以下屏幕截图所示,应会看到一个 Azure 门户的链接,该链接指向群集的特定应用 ID。 复制此链接,将其提供给 Azure AD 管理员。若要检查是否已授予同意,请选择“在 Azure AD 中查看同意”。 授予同意后,请从上面的步骤 2 开始重新运行向导。

    如果注册群集时需要其他 Azure Active Directory 权限,将向你提供一个要发送给 Azure AD 管理员的链接

使用 PowerShell 注册群集

使用以下过程通过管理 PC 向 Azure 注册 Azure Stack HCI 群集。

重要

如果运行的是 Azure Stack HCI 21H2 预览版,则只有具有所有者或用户访问管理员角色的 Azure 用户才能使用 Azure Arc 集成来注册 Azure Stack HCI 群集。

  1. 在管理 PC 上安装所需的 cmdlet。 如果要注册从 Azure Stack HCI 的最新正式版 (GA) 或公共预览版映像部署的群集,只需运行以下命令。 如果你的群集是在 2020 年 12 月 10 日之前部署的,请确保已将 2020 年 11 月 23 日公共预览版更新 (KB4586852) 应用于群集中的每个服务器,然后再尝试向 Azure 注册。

    Install-Module -Name Az.StackHCI
    

    备注

    • 你可能会看到一条提示(例如“是否希望 PowerShellGet 立即安装并导入 NuGet 提供程序?”),对此,应回答“是”(Y) 。
    • 可能会进一步显示提示“是否确实要从‘PSGallery’安装模块?” 对此,应回答“是”(Y)。
  2. 使用群集中任何服务器的名称执行注册操作。 若要获取 Azure 订阅 ID,请访问 portal.azure.cn,导航到“订阅”,然后从列表中复制/粘贴你的 ID。

    重要

    如果要在 Azure 中国注册 Azure Stack HCI,请运行 Register-AzStackHCI cmdlet 并使用以下附加参数:

    -EnvironmentName AzureChinaCloud -Region "ChinaEast2"

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

    使用此语法,将在默认的 Azure 区域和云环境中,使用 Azure 资源和资源组的智能默认名称,以当前用户身份注册群集(Server1 是其中的成员)。 你还可以将可选的 -Region-ResourceName-TenantId-ResourceGroupName 参数添加到此命令以指定这些值。

    备注

    如果运行的是 Azure Stack HCI 21H2 预览版,则运行 Register-AzStackHCI cmdlet 默认会在群集中的每个服务器上启用 Azure Arc 集成,运行该 cmdlet 的用户必须是 Azure 所有者或用户访问管理员。 如果你不想要为服务器启用 Arc 或者没有适当的角色,请传递以下附加参数:-EnableAzureArcServer:$false

    请记住,运行 Register-AzStackHCI cmdlet 的用户必须具有 Azure Active Directory 权限,否则注册过程将不会完成;相反,它将退出并使注册挂起以等待管理员审批。 授权后,只需重新运行 Register-AzStackHCI 即可完成注册。

  3. 使用 Azure 进行身份验证

    若要完成注册过程,需要使用 Azure 帐户进行身份验证(登录)。 帐户需要有权访问在上述第 2 步中指定的 Azure 订阅才能继续进行注册。 复制所提供的代码,在另一台设备(如 PC 或手机)上导航到 microsoft.com/deviceloginchina,输入该代码,然后在那里登录。 注册工作流将检测到你的登录并继续完成注册。 然后,你应该能够在 Azure 门户中看到你的群集。

启用 Azure Arc 集成

如果运行的是 Azure Stack HCI 21H2 预览版,并且在 2021 年 6 月 15 日或者之后首次向 Azure 注册了 Azure Stack HCI 群集,则默认将为群集中的每个服务器启用 Azure Arc,前提是注册该群集的用户具有 Azure 所有者或用户访问管理员角色。 无需采取进一步的操作。 但是,如果在该日期之前注册了群集,则需要执行以下步骤才能在服务器上启用 Azure Arc 集成。

备注

目前只能在 Azure Stack HCI 21H2 预览版中使用 Azure Arc 集成。

  1. 在管理电脑上安装最新版本的 Az.StackHCI 模块:

    Install-Module -Name Az.StackHCI
    
  2. 重新运行 Register-AzStackHCI cmdlet 并指定 Azure 订阅 ID,该 ID 必须与群集最初注册到的 ID 相同。 -ComputerName 参数可以是群集中任一服务器的名称。 此步骤将在群集中的每个服务器启用 Azure Arc 集成。 这不会影响 Azure 中的当前群集注册,并且不需要先取消注册群集。

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

    重要

    如果群集最初是使用不同于默认设置的 -Region-ResourceName-ResourceGroupName 注册的,则需要在此处指定所用的参数和值。 运行 Get-AzureStackHCI 将显示这些值。

后续步骤

现在可以执行以下操作: