在本地 Azure 上创建 Arc 虚拟机
适用于:Azure 本地版本 23H2
本文介绍如何从在 Azure 本地实例上创建的 VM 映像开始创建 Arc VM。 可以使用 Azure CLI、Azure 门户 或 Azure 资源管理器 模板创建 Arc VM。
关于 Azure 本地资源
使用以下操作的 Azure 本地资源页 :
- 创建和管理 Arc VM 资源,例如 VM 映像、磁盘、网络接口。
- 查看和访问与 Azure 本地实例关联的 Azure Arc 资源桥和自定义位置。
- 预配和管理 Arc VM。
下一部分将介绍 Arc VM 的创建过程。
先决条件
创建已启用 Azure Arc 的 VM 之前,请确保满足以下先决条件。
- 具有相应 RBAC 角色和分配权限的 Azure 订阅的访问权限。 有关详细信息,请参阅 用于 Azure 本地 Arc VM 管理的 RBAC 角色。
- 有权访问要在其中预配 VM 的资源组。
- 访问 Azure 本地上的一个或多个 VM 映像。 这些 VM 映像可能是通过以下过程之一创建的:
- 从 Azure 市场中的映像开始创建 VM 映像。
- 从 Azure 存储帐户中的映像开始创建 VM 映像。
- 从本地共享中的映像开始的 VM 映像。
- 用于预配 VM 的 Azure 本地的自定义位置。 自定义位置也会显示在 Azure 本地的“概述 ”页中。
如果使用客户端连接到 Azure 本地,请参阅 通过 Azure CLI 客户端连接到 Azure 本地。
访问在与 Azure 本地关联的逻辑网络上创建的网络接口。 可以选择具有静态 IP 的网络接口,也可以选择具有动态 IP 分配的网络接口。 有关详细信息,请参阅如何 创建网络接口。
创建 Arc VM
按照以下步骤在 Azure 本地创建 Arc VM。
在运行连接到 Azure Local 的 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 ="local-vm" $subscription = "<Subscription ID>" $resource_group = "local-rg" $customLocationName = "local-cl" $customLocationID ="/subscriptions/$subscription/resourceGroups/$resource_group/providers/Microsoft.ExtendedLocation/customLocations/$customLocationName" $location = "eastus" $computerName = "mycomputer" $userName = "local-user" $password = "<Password for the VM>" $imageName ="ws22server" $nicName ="local-vnic" $storagePathName = "local-sp" $storagePathId = "/subscriptions/<Subscription ID>/resourceGroups/local-rg/providers/Microsoft.AzureStackHCI/storagecontainers/local-sp"
VM 创建的参数按如下方式进行表格化:
参数 说明 name 为 Azure 本地创建的 VM 的名称。 请确保提供遵循 Azure 资源规则的名称。 admin-username 在 Azure 本地部署的 VM 上的用户的用户名。 admin-password 在 Azure 本地部署的 VM 上的用户的密码。 image-name 用于预配 VM 的 VM 映像的名称。 location az locations
指定的 Azure 区域。 例如,这可能为eastus
:westeurope
.resource-group 在其中创建 VM 的资源组的名称。 为便于管理,建议使用与 Azure 本地相同的资源组。 subscription 部署 Azure 本地的订阅的名称或 ID。 这可能是用于 Azure 本地 VM 的另一个订阅。 custom-location 使用此函数提供与要在其中创建此 VM 的 Azure 本地关联的自定义位置。 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 配置代理服务器。
Arc VM 的代理配置仅适用于 Azure 连接的计算机代理的加入,并在来宾 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 machine>"
可以输入以下参数 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"
使用托管标识对 Arc VM 进行身份验证
通过 Azure CLI 或 Azure 门户 在 Azure 本地创建 Arc VM 时,还会创建系统分配的托管标识,该标识将持续 Arc VM 的生存期。
Azure 本地 Arc VM 是从已启用 Arc 的服务器扩展的,可以使用系统分配的托管标识访问支持Microsoft基于 Entra ID 的身份验证的其他 Azure 资源。 例如,Arc VM 可以使用系统分配的托管标识访问 Azure 密钥库。
有关详细信息,请参阅 系统分配的托管标识 ,并使用 已启用 Azure Arc 的服务器针对 Azure 资源进行身份验证。