在 Azure Stack HCI 上创建 Arc 虚拟机
适用于:Azure Stack HCI 版本 23H2
本文介绍如何从 Azure Stack HCI 群集上创建的 VM 映像开始创建 Arc VM。 可以使用 Azure CLI、Azure 门户 或 Azure 资源管理器 模板创建 Arc VM。
关于 Azure Stack HCI 群集资源
使用以下操作的 Azure Stack HCI 群集资源页 :
- 创建和管理 Arc VM 资源,例如 VM 映像、磁盘、网络接口。
- 查看和访问与 Azure Stack HCI 群集关联的 Azure Arc 资源桥和自定义位置。
- 预配和管理 Arc VM。
下一部分将介绍 Arc VM 的创建过程。
先决条件
创建已启用 Azure Arc 的 VM 之前,请确保满足以下先决条件。
- 具有相应 RBAC 角色和分配权限的 Azure 订阅的访问权限。 有关详细信息,请参阅 Azure Stack HCI Arc VM 管理的 RBAC 角色。
- 有权访问要在其中预配 VM 的资源组。
- 有权访问 Azure Stack HCI 群集上的一个或多个 VM 映像。 这些 VM 映像可能是通过以下过程之一创建的:
- 一个用于预配 VM 的 Azure Stack HCI 群集自定义位置。 该自定义位置也会显示在 Azure Stack HCI 群集的“概述”页中。
如果使用客户端连接到 Azure Stack HCI 群集,请参阅 通过 Azure CLI 客户端连接到 Azure Stack HCI。
访问在与 Azure Stack HCI 群集关联的逻辑网络上创建的网络接口。 可以选择具有静态 IP 的网络接口,也可以选择具有动态 IP 分配的网络接口。 有关详细信息,请参阅如何 创建网络接口。
创建 Arc VM
按照以下步骤在 Azure Stack HCI 群集上创建 Arc VM。
在运行连接到 Azure Stack HCI 群集的 az CLI 的客户端上执行以下步骤。
登录并设置订阅
登录。 键入:
az login --use-device-code
设置订阅。
az account set --subscription <Subscription ID>
创建 Windows VM
根据创建的网络接口的类型,可以创建具有具有静态 IP 的网络接口的 VM,或者创建具有动态 IP 分配的网络接口的 VM。
注意
如果需要具有 VM 静态 IP 的多个网络接口,请在创建 VM 之前立即创建该接口。 不支持在预配 VM 后添加具有静态 IP 的网络接口。
在这里,我们将创建一个 VM,该 VM 使用指定存储路径上的特定内存和处理器计数。
设置一些参数。
$vmName ="myhci-vm" $subscription = "<Subscription ID>" $resource_group = "myhci-rg" $customLocationName = "myhci-cl" $customLocationID ="/subscriptions/$subscription/resourceGroups/$resource_group/providers/Microsoft.ExtendedLocation/customLocations/$customLocationName" $location = "eastus" $computerName = "mycomputer" $userName = "myhci-user" $password = "<Password for the VM>" $imageName ="ws22server" $nicName ="myhci-vnic" $storagePathName = "myhci-sp" $storagePathId = "/subscriptions/<Subscription ID>/resourceGroups/myhci-rg/providers/Microsoft.AzureStackHCI/storagecontainers/myhci-sp"
VM 创建的参数按如下方式进行表格化:
参数 说明 name 为 Azure Stack HCI 群集创建的 VM 的名称。 请确保提供遵循 Azure 资源规则的名称。 admin-username 在 Azure Stack HCI 群集上部署的 VM 上的用户的用户名。 admin-password 在 Azure Stack HCI 群集上部署的 VM 上的用户的密码。 image-name 用于预配 VM 的 VM 映像的名称。 location az locations
指定的 Azure 区域。 例如,这可能为eastus
:westeurope
.resource-group 在其中创建 VM 的资源组的名称。 为便于管理,建议使用与 Azure Stack HCI 群集相同的资源组。 subscription 部署 Azure Stack HCI 的订阅的名称或 ID。 这可能是 Azure Stack HCI 群集上用于 VM 的另一个订阅。 custom-location 使用此函数提供与要在其中创建此 VM 的 Azure Stack HCI 群集关联的自定义位置。 authentication-type 要用于 VM 的身份验证类型。 接受的值是 all
,password
和ssh
。 默认为适用于 Linux 的 Windows 和 SSH 公钥的密码。 用于all
启用ssh
和password
身份验证。nics 与 VM 关联的网络接口的名称或 ID。 创建 VM 时,必须具有至少一个网络接口才能启用来宾管理。 memory-mb 分配给 VM 的内存(以兆字节为单位)。 如果未指定,则使用默认值。 处理器 分配给 VM 的处理器数。 如果未指定,则使用默认值。 storage-path-id 保存 VM 配置和数据的相关存储路径。 proxy-configuration 使用此可选参数为 VM 配置代理服务器。 有关详细信息,请参阅 创建配置了代理的 VM。 运行以下命令以创建 VM。
az stack-hci-vm create --name $vmName --resource-group $resource_group --admin-username $userName --admin-password $password --computer-name $computerName --image $imageName --location $location --authentication-type all --nics $nicName --custom-location $customLocationID --hardware-profile memory-mb="8192" processors="4" --storage-path-id $storagePathId
如果输出中的 provisioningState
显示为 succeeded
,表示成功创建了 VM。
注意
创建的 VM 默认已启用来宾管理。 如果由于任何原因,来宾管理在 VM 创建过程中失败,则可以按照在创建 VM 后在 Arc VM 上启用来宾管理中的步骤操作。
在此示例中,使用 --storage-path-id
标志指定了存储路径,并确保将工作负荷数据(包括 VM、VM 映像、非 OS 数据磁盘)放置在指定的存储路径中。
如果未指定标志,则工作负荷(VM、VM 映像、非 OS 数据磁盘)会自动放置在高可用性存储路径中。
创建 Linux VM
若要创建 Linux VM,请使用用于创建 Windows VM 的相同命令。
- 指定的库映像应为 Linux 映像。
- 用户名和密码适用于
authentication-type-all
参数。 - 对于 SSH 密钥,需要
ssh-key-values
传递参数以及authentication-type-all
.
重要
Ubuntu Server VM 支持在创建 VM 期间设置代理服务器。
创建配置了代理的 VM
使用此可选参数 代理配置 为 VM 配置代理服务器。
如果在代理服务器后面创建 VM,请运行以下命令:
az stack-hci-vm create --name $vmName --resource-group $resource_group --admin-username $userName --admin-password $password --computer-name $computerName --image $imageName --location $location --authentication-type all --nics $nicName --custom-location $customLocationID --hardware-profile memory-mb="8192" processors="4" --storage-path-id $storagePathId --proxy-configuration http_proxy="<Http URL of proxy server>" https_proxy="<Https URL of proxy server>" no_proxy="<URLs which bypass proxy>" cert_file_path="<Certificate file path for your server>"
可以输入以下参数 proxy-server-configuration
:
参数 | 说明 |
---|---|
http_proxy | 代理服务器的 HTTP URL。 示例 URL 为:http://proxy.example.com:3128 . |
https_proxy | 代理服务器的 HTTPS URL。 服务器仍可使用 HTTP 地址,如以下示例所示: http://proxy.example.com:3128 |
no_proxy | 可以绕过代理的 URL。 典型的示例是 localhost,127.0.0.1,.svc,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,100.0.0.0/8 。 |
cert_file_path | 代理服务器的证书文件路径的名称。 例如:C:\Users\Palomino\proxycert.crt 。 |
下面是一个示例命令:
az stack-hci-vm create --name $vmName --resource-group $resource_group --admin-username $userName --admin-password $password --computer-name $computerName --image $imageName --location $location --authentication-type all --nics $nicName --custom-location $customLocationID --hardware-profile memory-mb="8192" processors="4" --storage-path-id $storagePathId --proxy-configuration http_proxy="http://ubuntu:ubuntu@192.168.200.200:3128" https_proxy="http://ubuntu:ubuntu@192.168.200.200:3128" no_proxy="localhost,127.0.0.1,.svc,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,100.0.0.0/8,s-cluster.test.contoso.com" cert_file_path="C:\ClusterStorage\UserStorage_1\server.crt"
对于代理身份验证,可以传递 URL 中组合的用户名和密码,如下所示:"http://username:password@proxyserver.contoso.com:3128"
可能需要为 VM 启用代理设置,具体取决于在 VM 上运行的 PowerShell 版本。
对于运行 PowerShell 5.1 或更高版本的 Windows VM,在创建后登录到 VM。 运行以下命令以启用代理:
netsh winhttp set proxy proxy-server="http=myproxy;https=sproxy:88" bypass-list="*.foo.com"
启用代理后,可以 启用来宾管理。
对于运行 PowerShell 版本低于 5.1 的 Windows VM,在创建 VM 期间传递的代理设置仅用于启用 Arc 来宾管理。 创建 VM 后,登录到 VM 并运行上述命令,为其他应用程序启用代理。
使用托管标识对 Arc VM 进行身份验证
通过 Azure CLI 或 Azure 门户 在 Azure Stack HCI 系统上创建 Arc VM 时,还会创建系统分配的托管标识,该标识将持续 Arc VM 的生存期。
Azure Stack HCI 上的 Arc VM 是从已启用 Arc 的服务器扩展的,可以使用系统分配的托管标识访问支持Microsoft基于 Entra ID 的身份验证的其他 Azure 资源。 例如,Arc VM 可以使用系统分配的托管标识访问 Azure 密钥库。
有关详细信息,请参阅 系统分配的托管标识 ,并使用 已启用 Azure Arc 的服务器对 Azure 资源进行身份验证。