你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
用户可以根据自己的需求,使用多个灵活的选项,为环境中的多个 Windows 或 Linux 计算机启用已启用 Azure Arc 的服务器。 使用我们提供的模板脚本,可以自动完成每个安装步骤,包括与 Azure Arc 建立连接。但是,必须使用在目标计算机和 Azure 中拥有提升权限的帐户手动执行此脚本。
将计算机连接到已启用 Azure Arc 的服务器的一种方法是使用 Microsoft Entra 服务主体。 可以使用此服务主体方法,而不是使用特权标识以交互方式连接计算机。 服务主体是一种特殊的受限管理标识,它只有使用 azcmagent 命令将计算机连接到 Azure 所需的最低权限。 此方法比使用较高特权的帐户(例如租户管理员)更安全,并且可以遵循我们的访问控制安全性最佳做法。 服务主体仅在载入期间使用;它不用于任何其他目的。 可以使用 Azure CLI(Windows 或 Linux)、PowerShell 或在 Azure 门户中创建服务主体。
如果没有 Azure 订阅,请在开始之前创建一个免费帐户。
在开始连接计算机之前,请查看以下要求:
请确保对要加入的计算机拥有管理员权限。
在计算机上安装 Connected Machine 代理需要管理员权限;在 Linux 上使用根帐户,在 Windows 上作为本地管理员组的成员。
请查看先决条件,并验证你的订阅和资源是否符合要求。 你需要具有计算机资源组的“Azure Connected Machine 加入”角色或“参与者”角色。 请确保事先在目标订阅中注册以下 Azure 资源提供程序。
- Microsoft.HybridCompute
- Microsoft.GuestConfiguration
- Microsoft.HybridConnectivity
- Microsoft.AzureArcData(如果计划使用启用了 Arc 的 SQL Server 实例)
有关详细信息,请参阅 Azure 资源提供程序先决条件。
有关支持的区域和其他相关注意事项的信息,请参阅支持的 Azure 区域。 另请查看我们的《大规模规划指南》,以了解设计和部署标准,以及我们的管理和监视建议。
SQL Server 的自动连接
将 Windows 或 Linux 服务器连接到也安装了 Microsoft SQL Server 的 Azure Arc 时,SQL Server 实例也会自动连接到 Azure Arc。
通过 Azure Arc 启用的 SQL Server 为 SQL Server 实例和数据库提供详细清单和附加管理功能。 在连接过程中,扩展将部署到已启用 Azure Arc 的服务器,新角色会应用到 SQL Server 和数据库。 如果不想自动将 SQL Server 连接到 Azure Arc,则可通过在 Windows 或 Linux 服务器连接到 Azure Arc 时向其添加一个名为 ArcSQLServerExtensionDeployment 且值为 Disabled 的标记来选择退出。
有关详细信息,请参阅管理 Azure Arc 启用的 SQL Server 自动连接。
为大规模加入创建服务主体
可以使用 Azure CLI(Windows 或 Linux)、PowerShell 或在 Azure 门户中创建服务主体。
Note
若要创建服务主体,Microsoft Entra 租户需要允许用户注册应用程序。 如果不符合条件,你的帐户必须是应用程序管理员或云应用程序管理员管理角色的成员。 有关租户级别要求的详细信息,请参阅在 Microsoft Entra ID 中委托应用注册权限。 若要分配已启用 Arc 的服务器角色,你的帐户必须是订阅中要用于载入的所有者或用户访问管理员角色的成员。
Azure CLI
可以使用 Azure CLI(Windows 或 Linux)通过 az ad sp create-for-rbac 命令创建服务主体。
登录到 Azure。
az login运行以下命令以创建服务主体,并为它分配所选订阅的“Azure Connected Machine 加入”角色。 创建服务主体后,它将输出应用程序 ID 和机密。 机密的有效期为 1 年,之后需要生成新机密并使用新机密来更新任何脚本。
az ad sp create-for-rbac --name "Arc server onboarding account" --role "Azure Connected Machine Onboarding" --scopes "/subscriptions/<subscription-id>"
参数: --name:服务主体的显示名称。 --role:分配 Azure Connected Machine Onboarding 角色。 --scopes:角色分配的范围(在本例中为订阅级别)。 将 subscription-id 替换为您的订阅 ID。
输出示例:
{
"appId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"displayName": " Arc server onboarding account",
"password": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"tenant": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
Note
记下这些值,这些值与稍后部分传递给 azcmagent 的参数一起使用: 安装代理并连接到 Azure
- appId 属性中的值用于 --service-principal-id 参数值。
- 密码属性中的值用于用于连接代理的 --service-principal-secret 参数。
Azure 门户
Azure 门户中的 Azure Arc 服务提供了一种简化的方式来创建可用于将混合计算机连接到 Azure 的服务主体。
- 在 Azure 门户顶部,搜索并选择 Azure Arc。
- 在服务菜单中的“管理”下,选择 “服务主体”。
- 选择 并添加。
- 为服务主体输入一个名称。
- 选择服务主体是有权访问整个订阅,还是仅有权访问特定资源组。
- 选择服务主体将有权访问的订阅(和资源组,如果适用)。
- 输入服务主体的“服务树 ID”。
- 在“客户端密码”部分,选择生成的客户端密码的使用持续时间。 可以选择在“说明”字段中输入你选择的易记名称。
- 在“角色分配”部分,选择“Azure Connected Machine 加入”。
- 选择 创建。
Azure PowerShell
可以在 Azure PowerShell 中使用 New-AzADServicePrincipal cmdlet 创建服务主体。
检查 Azure PowerShell 会话的上下文,确保使用正确的订阅。 如果需要更改订阅,请使用 Set-AzContext。
Get-AzContext运行以下命令以创建服务主体,并为它分配所选订阅的“Azure Connected Machine 加入”角色。 创建服务主体后,它将输出应用程序 ID 和机密。 机密的有效期为 1 年,之后需要生成新机密并使用新机密来更新任何脚本。
$sp = New-AzADServicePrincipal -DisplayName "Arc server onboarding account" -Role "Azure Connected Machine Onboarding" $sp | Format-Table AppId, @{ Name = "Secret"; Expression = { $_.PasswordCredentials.SecretText }}AppId Secret ----- ------ aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee PASSWORD_SHOWN_HERE以下属性中的值将与传递给
azcmagent的参数配合使用:- AppId 属性中的值用作
--service-principal-id参数值 - Secret 属性中的值用作连接代理时所用的
--service-principal-secret参数。
- AppId 属性中的值用作
从 Azure 门户生成安装脚本
使用 Azure 门户创建一个脚本,用于自动下载和安装代理,并与 Azure Arc 建立连接。如果要完成该过程,请执行以下步骤:
在浏览器中转到 Azure 门户。
在“计算机 - Azure Arc”页上,选择左上角的“添加/创建”,然后从下拉菜单中选择“添加计算机”。
在“使用 Azure Arc 添加服务器”页上,选择“添加多台服务器”磁贴,然后选择“生成脚本”。
在“基本信息”页上,提供以下信息:
- 选择计算机的“订阅”和“资源组”。
- 在“区域”下拉列表中,选择用于存储服务器元数据的 Azure 区域。
- 在“操作系统”下拉列表中,选择脚本配置为要在其上运行的操作系统。
- 对于 连接方法:
- 选择 公共终结点 或 专用终结点。 如果选择 “专用终结点”,可以选择现有的专用链接范围或创建新的专用链接范围。
- 如果要使用 代理服务器 URL,请输入代理服务器 IP 地址或计算机将使用的格式
http://<proxyURL>:<proxyport>的名称和端口号。 - 如果选择 公共终结点 并想要使用 Azure Arc 网关,请选择现有的 网关资源 或创建一个新的。
- 在“身份验证”部分中的“服务主体”下拉列表下,选择“Arc-for-servers”。
- 选择“下一步”。
在“标记”页上,查看建议的默认“物理位置标记”并输入值,或指定一个或多个“自定义标记”以支持你的标准。
选择“下一步”。
在“下载并运行脚本”页上查看摘要信息,然后选择“下载”。 如果仍需进行更改,请选择“上一页”。
对于 Windows,系统会提示用户将 OnboardingScript.ps1 保存到计算机,对于 Linux,则提示将 OnboardingScript.sh 保存到计算机。
安装代理并连接到 Azure
使用先前创建的脚本模板,可以使用组织首选的自动化工具在多台混合 Linux 和 Windows 计算机上安装和配置 Connected Machine 代理。 此脚本执行“从 Azure 门户将混合计算机连接到 Azure”文章中所述的类似步骤。 不同之处在于,最后一步是通过 azcmagent 命令使用服务主体与 Azure Arc 建立连接。
下面是配置用于服务主体的 azcmagent 命令时需要指定的设置。
-
service-principal-id:唯一标识符 (GUID),表示服务主体的应用程序 ID。 -
service-principal-secret| 服务主体密码。 -
tenant-id:表示 Microsoft Entra ID 专用实例的唯一标识符 (GUID)。 -
subscription-id:计算机要属于的 Azure 订阅的订阅 ID (GUID)。 -
resource-group:连接的计算机要属于的资源组的名称。 -
location:请参阅支持的 Azure 区域。 此位置可以与资源组的位置相同或不同。 -
resource-name:(可选)用于本地计算机的 Azure 资源表示。 如果未指定此值,将使用计算机主机名。
若要详细了解 azcmagent 命令行工具,请查看 Azcmagent 参考。
Note
仅支持从 64 位版本的 Windows PowerShell 中运行 Windows PowerShell 脚本。
安装代理并将其配置为连接到启用了 Azure Arc 的服务器后,请转到 Azure 门户,验证是否已成功连接服务器。 在 Azure 门户中查看计算机。
Troubleshooting
如果您看到以下错误,可能需要将您添加为应用程序管理员或者云应用程序管理员角色的成员。
ServiceManagementReference field is required for Create, but is missing in the request. Refer to the TSG `https://aka.ms/service-management-reference-error` for resolving the error.
后续步骤
- 查看规划和部署指南,以便对按任意规模部署启用了 Azure Arc 的服务器进行规划,并实现集中管理和监视。
- 了解如何排查代理连接问题。
- 了解如何使用 Azure Policy 管理计算机以实现一些目的,例如,进行 VM 来宾配置、验证计算机是否向预期的 Log Analytics 工作区报告、使用 VM 见解进行监视,等等。