通过 Azure 资源管理器部署模板来部署 Azure Local

本文详细介绍了如何使用 Azure 门户中的 Azure 资源管理器 (ARM) 模板在环境中部署 Azure 本地。 本文还包含开始部署所需的先决条件和准备步骤。

重要

Azure 本地系统的 ARM 模板部署面向大规模部署。 此部署的目标受众是具有部署 Azure 本地实例经验的 IT 管理员。 建议先通过 Azure 门户部署系统,然后通过 ARM 模板执行后续部署。

先决条件

  • 对于 Azure 本地 2411.3 和更低版本,请确保选择 create-cluster-2411.3 模板进行部署。
  • 对于 Azure 本地 2503 及更高版本,请确保选择用于部署的 创建群集 模板。

步骤 1:准备 Azure 资源

按照以下步骤准备部署所需的 Azure 资源:

创建服务主体和客户端机密

若要对系统进行身份验证,需要为 Arc 资源桥(ARB)创建服务主体和相应的 客户端机密

为 ARB 创建服务主体

按照创建Microsoft Entra 应用程序和服务主体中的步骤操作,该主体可以通过Azure 门户访问资源,以创建服务主体并分配角色。 或者,使用 PowerShell 过程通过 Azure PowerShell 创建 Azure 服务主体。

此处还汇总了这些步骤:

  1. 以至少云应用程序管理员身份登录到 Microsoft Entra 管理中心 。 浏览到身份>应用程序>应用注册然后选择“新注册”。

  2. 为应用程序提供名称,选择受支持的帐户类型,然后选择“注册”。

    显示了注册应用程序以创建服务委托的屏幕截图。

  3. 创建服务主体后,转到 “企业应用程序 ”页。 搜索并选择你创建的 SPN。

    显示创建的服务主体的搜索结果的屏幕截图。

  4. 在属性下,复制 此服务主体的应用程序(客户端)ID对象 ID

    显示创建服务主体的应用程序(客户端)ID 和对象 ID 的屏幕截图。

    对参数使用应用程序(客户端)IDarbDeploymentAppID,对 ARM 模板中的参数使用对象 IDarbDeploymentSPNObjectID

为 ARB 服务主体创建客户端秘密

  1. 转到你创建的应用程序注册并浏览到 证书和机密 > 客户端机密

  2. 选择 + 新客户端密码

    显示创建新客户端机密的屏幕截图。

  3. 为客户端机密添加说明,并在其过期提供时间范围。 选择 并添加

    显示了添加客户秘密边栏选项卡的屏幕截图。

  4. 复制客户端机密值,以供稍后使用。

    注释

    对于应用程序客户端 ID,您将需要它的机密值。 除创建后立即查看外,无法查看客户秘密的值。 在创建后离开页面之前,请务必保存此值。

    显示客户端机密值的屏幕截图。

    对 ARM 中的参数使用客户端机密值arbDeploymentAppSecret

获取 Azure 本地资源提供程序的对象 ID

Azure 本地资源提供(RP)的此对象 ID 对于每个 Azure 租户是唯一的。

  1. 在 Azure 门户中,搜索并选择“Microsoft Entra ID”。

  2. 转到 “概述 ”选项卡,搜索 Microsoft.AzureStackHCI 资源提供程序

    显示了搜索 Azure Local 资源提供程序服务主体的屏幕截图。

  3. 选择列出的服务主体名称并复制 对象 ID

    显示了 Azure Local 资源提供程序服务主体的对象 ID 的屏幕截图。

    或者,可以使用 PowerShell 获取 Azure 本地 RP 服务主体的对象 ID。 在 PowerShell 中运行以下命令:

    Get-AzADServicePrincipal -DisplayName "Microsoft.AzureStackHCI Resource Provider"
    

    对 ARM 模板中的参数使用对象 IDhciResourceProviderObjectID

步骤 2:使用 ARM 模板进行部署

ARM 模板创建并分配部署所需的所有资源权限。

完成所有先决条件和准备步骤后,即可使用已知良好且经过测试的 ARM 部署模板和相应的参数 JSON 文件进行部署。 使用 JSON 文件中包含的参数填写所有值,包括之前生成的值。

有关参数 JSON 文件的示例,请参阅 azuredeploy.parameters.json。 有关此文件中定义的参数的详细说明,请参阅 ARM 模板参数参考

重要

确保填写 JSON 文件中的所有参数,包括显示为 [“”]的占位符,这表示参数需要数组结构。 将这些值替换为基于部署环境的实际值,否则验证将失败。

  1. 在Azure 门户中,转到“主页”并选择“+ 创建资源”。

  2. 在“模板部署”下选择“创建(使用自定义模板进行部署)。

    显示模板部署(使用自定义模板进行部署)的屏幕截图。

  3. 在页面底部附近,找到从快速启动模板或模板规格入手部分。 选择 “快速入门模板 ”选项。

    显示所选快速入门模板的屏幕截图。

  1. 快速入门模板(免责声明) 下拉列表中,选择 create-cluster-2411.3 模板。

  2. 完成后,选择 “选择模板 ”按钮。

    屏幕截图显示选择的模板适用于版本 2411.3 和更早版本。

  3. “基本信息 ”选项卡上,可以看到“ 自定义部署 ”页。 可以通过下拉列表选择各种参数,或选择“ 编辑参数”。

    显示“基本信息”选项卡上的“自定义部署”页的屏幕截图。

    注释

    有关显示各种输入格式的示例参数文件,例如 ArcNodeResourceId,请参阅 azuredeploy.parameters.json

  1. 使用快速入门模板(免责声明)字段筛选相应的模板。 为筛选器键入 azurestackhci/create-cluster

  2. 完成后,选择 “选择模板 ”按钮。

    显示已选择模板的屏幕截图。

  3. “基本信息 ”选项卡上,可以看到“ 自定义部署 ”页。 可以通过下拉列表选择各种参数,或选择“ 编辑参数”。

    显示“基本信息”选项卡上的“自定义部署”页的屏幕截图。

    注释

    有关显示各种输入格式的示例参数文件,例如 ArcNodeResourceId,请参阅 azuredeploy.parameters.json

  1. 编辑网络意向或存储网络意向等参数。 填写参数后, 保存 参数文件。

    显示为模板填写的参数的屏幕截图。

  2. 为环境选择适当的资源组。

  3. 滚动到底部,确认 部署模式 = 验证

  4. 选择查看 + 创建

    显示了在“基本”选项卡上选择“查看+创建”的屏幕截图。

  5. 在“查看 + 创建”选项卡中,选择“创建”。 这会创建剩余的先决条件资源并验证部署。 验证需要大约 10 分钟才能完成。

    显示了在“基本”选项卡上选择“查看+创建”的屏幕截图。

  6. 验证完成后,选择“ 重新部署”。

    显示已选择“重新部署”的屏幕截图。

  7. “自定义部署 ”屏幕上,选择“ 编辑参数”。 加载以前保存的参数,然后选择“ 保存”。

  8. 在工作区底部,将 JSON 中的最终值从“验证”更改为“部署”,其中部署模式 = 部署

    显示了已选择部署模式的屏幕截图。

  9. 验证 ARM 部署模板的所有字段是否都由参数 JSON 填充。

  10. 为环境选择适当的资源组。

  11. 滚动到底部,确认 部署模式 = 部署

  12. 选择查看 + 创建

  13. 选择“创建”。 部署开始,使用在验证步骤中创建的现有先决条件资源。

    部署屏幕在部署期间会在群集资源上循环显示。

    部署启动后,将先进行有限的环境检查,然后进行完整的环境检查,最后开始云部署。 几分钟后,可以在门户中监视部署。

    显示环境检查器验证状态的屏幕截图。

  14. 在新的浏览器窗口中,导航到环境的资源组。 选择群集资源。

  15. 选择“部署”。

  16. 刷新并观察第一台计算机的部署进度(也称为种子计算机,也是部署群集的第一台计算机)。 部署需要 2.5 到 3 小时。 几个步骤需要 40-50 分钟或更多时间。

  17. 部署中花费时间最长的步骤是 部署 Moc 和 ARB Stack。 此步骤需要 40-45 分钟。

    完成后,顶部的任务会更新状态和结束时间。

ARM 模板参数参考

下表描述了在 ARM 模板的参数文件中定义的参数:

参数 DESCRIPTION
deploymentMode 确定部署过程是否应仅验证或继续执行完整部署:
- 验证:为此系统创建 Azure 资源,并验证系统的部署准备情况。
- 部署:成功验证后执行实际部署。
KeyVaultName 用于存储机密的 Azure Key Vault 的名称。
有关命名约定,请参阅 Azure 资源的命名规则和限制一文中的 Microsoft.KeyVault
softDeleteRetentionDays 删除的项(如机密、密钥或证书)在永久删除之前保留在 Azure Key Vault 中的天数。
指定介于 7 到 90 天之间的值。 以后无法更改保留期。
diagnosticStorageAccountName 用于存储密钥保管库审核日志的 Azure 存储帐户的名称。 此帐户是具有锁的本地冗余存储(LRS)帐户。
有关详细信息,请参阅 Azure 存储帐户。 有关命名约定,请参阅Azure 存储帐户名称
logsRetentionInDays 日志保留的天数。
如果不想应用任何保留策略并永久保留数据,请指定 0。
存储账户类型 要用于部署的 Azure 存储帐户的类型。 例如,Standard_LRS。
集群名称 要部署的 Azure 本地实例的名称。
这是表示云上的群集的名称。 它必须与任何节点名称不同。
位置 部署位置,通常派生自资源组。
有关受支持的 Azure 区域的列表,请参阅 Azure 要求
租户ID Azure 订阅租户 ID。
有关详细信息,请参阅 “查找Microsoft Entra 租户
witnessType (见证类型) Azure 本地群集的见证类型。
见证类型必须是双节点群集的云。 对于其他群集大小,它可以为空。
有关云见证的详细信息,请参阅 部署仲裁见证
clusterWitnessStorageAccountName 用于群集见证的存储帐户的名称。
有关详细信息,请参阅 Azure 存储帐户。 有关命名约定,请参阅Azure 存储帐户名称
localAdminUserName 系统中所有计算机的本地管理员的用户名。 系统中所有计算机的凭据都是相同的。
有关详细信息,请参阅 查看 Azure 本地部署先决条件
localAdminPassword 系统中所有计算机的本地管理员的密码。 系统中所有计算机的凭据都是相同的。
有关详细信息,请参阅 查看 Azure 本地部署先决条件
AzureStackLCMAdminUsername LCM 管理员的用户名。
有关详细信息,请参阅 查看 Azure 本地部署先决条件
AzureStackLCMAdminPasssword LCM 管理员的密码。
有关详细信息,请参阅 查看 Azure 本地部署先决条件
hciResourceProviderObjectID Azure 本地资源提供程序的对象 ID。
有关详细信息,请参阅 获取 Azure 本地资源提供程序的对象 ID
arcNodeResourceIds 已启用 Azure Arc 的服务器的资源 ID 数组,这些服务器属于此 Azure 本地群集。
domainFqdn 为部署准备的 Active Directory 域服务的完全限定域名 (FQDN)。
naming前缀 用于为 Azure 本地部署创建的所有对象的前缀。
阿杜路径 为此部署创建的组织单位(OU)的路径。 OU 不能位于域的顶层。 例如:OU=Local001,DC=contoso,DC=com。
securityLevel 安全级别 部署期间要应用于 Azure 本地群集的安全配置文件。 默认值为 “建议”。
driftControl强制执行 用于定期重新应用安全默认值的偏移控制设置。
有关详细信息,请参阅 Azure 本地版的安全功能
credentialGuardEnforced 使用基于虚拟化的安全性来隔离机密免受凭据盗窃攻击的 Credential Guard 设置。
有关详细信息,请参阅 管理 Azure 本地的安全默认值
smbSigningEnforced 设置此 Azure 本地群集和其他群集之间的 SMB 流量签名,以帮助防止中继攻击。
有关详细信息,请参阅 服务器消息块签名概述
smbClusterEncryption 用于加密存储网络上群集中服务器之间的流量的 SMB 群集流量设置。
有关详细信息,请参阅 SMB 加密
bitlocker 引导卷 用于在每个服务器上加密 OS 卷的 BitLocker 加密设置。
有关详细信息,请参阅 管理 Azure 本地上的 BitLocker 加密
bitlockerDataVolumes 用于加密部署期间在此系统上创建的群集共享卷(CSV)的 BitLocker 加密设置。
有关详细信息,请参阅 管理 Azure 本地上的 BitLocker 加密
wdacEnforced 应用程序控制设置,用于控制允许哪些驱动程序和应用直接在每个服务器上运行。
有关详细信息,请参阅 管理 Azure 本地的应用程序控制。
streamingDataClient 指定是否启用从 Azure 本地群集流式传输到Microsoft的遥测数据。
euLocation 指定是否在欧盟(欧盟)中发送和存储遥测和诊断数据。
episodicDataUpload Episodic 诊断数据设置,用于指定是否收集日志数据和上传到Microsoft,以帮助进行故障排除和支持。
有关详细信息,请参阅故障转储收集
configurationMode 存储卷配置模式。 支持的值包括:
- Express:为每个计算机创建一个精简预配的卷和存储路径,供工作负荷使用。 除此之外,每个群集还需要一个基础结构卷。
- InfraOnly:为每个群集仅创建所需的一个基础结构卷。 稍后需要创建工作负荷卷和存储路径。
- KeepStorage:保留包含存储空间池和卷的现有数据驱动器。
subnetMask Azure 本地部署使用的管理网络的子网掩码。
defaultGateway 网关 用于部署 Azure 本地群集的默认网关。
startingIPAddress 管理网络子网上至少包含六个静态 IP 地址的连续块中的第一个 IP 地址,省略计算机已使用的地址。
这些 IP 由 Azure 本地和内部基础结构(Arc 资源网桥)使用,Arc VM 管理和 AKS 混合都需要使用这些 IP。
endingIPAddress 管理网络子网上至少六个静态 IP 地址的连续块中的最后一个 IP 地址,省略计算机已使用的地址。
这些 IP 由 Azure 本地和内部基础结构(Arc 资源网桥)使用,Arc VM 管理和 AKS 混合都需要使用这些 IP。
dns服务器 DNS 服务器 IP 列表。
使用Dhcp 指示是否对主机和群集 IP 使用动态主机配置协议(DHCP)。
如果未声明,部署将默认为静态 IP。 如果为 TRUE,则不需要网关和 DNS 服务器。
physicalNodesSettings 物理节点的数组及其 IP 地址。
networkingType 网络类型。 例如,switchedMultiServerDeployment。
有关详细信息,请参阅 “指定网络设置”。
networkingPattern 用于网络的模式。 例如,hyperConverged。
intentList 部署意向列表。
storageNetworkList 存储网络列表。
storageConnectivitySwitchless 指定是否在没有网络交换机的情况下配置存储连接。
enableStorageAutoIp 指定是否启用自动 IP 分配。
自定义位置 部署的自定义位置。
sbeVersion 在 Azure 本地部署期间要使用的解决方案生成器扩展(SBE)的版本。
sbeFamily 部署期间应用的 SBE 包的系列或类别。
sbePublisher SBE 的发布者或供应商。
sbeManifestSource (英文) SBE 清单文件的源位置。
sbeManifestCreationDate (sbe清单创建日期) SBE 清单的创建日期。
partnerProperties 特定于合作伙伴的属性的列表。
partnerCredentiallist 合作伙伴凭据列表。

排查部署问题

如果部署失败,则应在部署页上看到一条错误消息。

  1. 在部署详细信息上,选择错误详细信息

    显示了选择错误详细信息的屏幕截图。

  2. 错误 面板中复制错误消息。 你可以提供此错误消息来Microsoft支持以获取进一步的帮助。

    显示了“错误”边栏选项卡中的摘要的屏幕截图。

ARM 模板部署的已知问题

本部分包含 ARM 模板部署的已知问题和解决方法。

角色分配已存在

问题:在此版本中,你可能会看到 角色分配已存在 错误。 如果首先尝试从门户进行 Azure 本地实例部署,并且同一资源组用于 ARM 模板部署,则会发生此错误。 在适用资源的“概述>部署详细信息”页上看到此错误。 此错误表示同一资源组范围的另一个标识已完成等效的角色分配,ARM 模板部署无法执行角色分配。

显示了“错误”边栏选项卡中的角色分配错误的屏幕截图。

解决方法:“部署详细信息”页上失败的资源指定了角色分配名称。 如果资源名称为 AzureStackHCIDeviceManagementRole-RoleAssignment,则 Azure Stack HCI 设备管理角色的分配失败。 请注意此角色名称,并转到 资源组 > 访问控制(IAM) > 角色分配。 搜索相应的名称,并删除该处的现有角色分配。 重新部署模板。

显示“详细信息”页上的角色分配名称的屏幕截图。

不允许更新租户 ID、应用程序 ID、主体 ID 和范围

问题:角色分配失败, 租户 ID、应用程序 ID、主体 ID 和作用域不允许更新。 在适用资源的“概述>部署详细信息”页上看到此错误。 当同一资源组中存在僵尸角色分配时,可能会显示此错误。 例如,执行之前部署时,删除了与该部署对应的资源,但角色分配资源会保留。

显示了“错误”边栏选项卡中的租户 ID、应用程序 ID、主体 ID 和范围无法更新的屏幕截图。

解决方法:若要标识僵尸角色分配,请转到 访问控制(IAM) > 角色分配 > 类型:未知 选项卡。这些分配被列为 找不到标识。找不到标识。 删除此类角色分配,然后重试 ARM 模板部署。

显示了“错误”边栏选项卡中的“找不到身份”消息的屏幕截图。

许可证同步问题

问题:在此版本中,使用 ARM 模板部署时可能会遇到许可证同步问题。

解决方法:系统完成验证阶段后,如果系统处于部署失败状态,建议不要在“验证”模式下启动另一个 ARM 模板部署。 启动另一个部署会重置系统属性,这可能会导致许可证同步问题。

后续步骤