azcmagent 连接

通过创建 Azure 中服务器的元数据表示形式并将 Azure Connected Machine 代理与其相关联,将服务器连接到 Azure Arc。 该命令要求提供有关租户、订阅和资源组(你将在其中表示 Azure 中的服务器)的信息,以及有权在该位置创建已启用 Azure Arc 的服务器资源的有效凭据。

使用情况

azcmagent connect [authentication] --subscription-id [subscription] --resource-group [resourcegroup] --location [region] [flags]

示例

使用默认登录方法(交互式浏览器或设备代码)连接服务器。

azcmagent connect --subscription-id "Production" --resource-group "HybridServers" --location "chinaeast2"
azcmagent connect --subscription-id "Production" --resource-group "HybridServers" --location "chinaeast2" --use-device-code

使用服务主体连接服务器。

azcmagent connect --subscription-id "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" --resource-group "HybridServers" --location "chinaeast2" --service-principal-id "ID" --service-principal-secret "SECRET" --tenant-id "TENANT"

使用专用终结点和设备代码登录方法连接服务器。

azcmagent connect --subscription-id "Production" --resource-group "HybridServers" --location "koreacentral" --use-device-code --private-link-scope "/subscriptions/.../Microsoft.HybridCompute/privateLinkScopes/ScopeName"

身份验证选项

可通过 4 种方式向 Azure Connected Machine Agent 提供身份验证凭据。 选择一个身份验证选项,并将用法语法中的 [authentication] 部分替换为建议的标志。

交互式浏览器登录(仅适用于 Windows)

此选项是提供桌面体验的 Windows 操作系统上的默认选项。 其登录页将在默认 Web 浏览器中打开。 如果组织配置了要求从受信任计算机登录的条件访问策略,则可能需要使用此选项。

无需提供标志即可使用交互式浏览器登录。

设备代码登录

此选项会生成一个代码,你可以使用该代码在另一台设备上的 Web 浏览器中登录。 这是 Windows Server 核心版和所有 Linux 发行版的默认选项。 执行 connect 命令时,需要在 5 分钟内在已连接到 Internet 的设备上打开指定的登录 URL 并完成登录流。

若要使用设备代码进行身份验证,请使用 --use-device-code 标志。 如果用于登录的帐户和注册服务器的订阅不在同一个租户中,则还必须使用 --tenant-id [tenant] 提供该订阅的租户 ID。

具有机密的服务主体

服务主体允许以非交互方式进行身份验证,通常用于跨多个服务器运行同一脚本的大规模部署。 Azure 建议通过配置文件提供服务主体信息(请参阅 --config),以避免在任何控制台日志中暴露机密。 此外,服务主体应该专用于 Arc 加入并拥有尽可能少的权限,以遏制凭据被盗所造成的影响。

要使用机密向服务主体进行身份验证,请提供服务主体的应用程序 ID、机密和租户 ID:--service-principal-id [appid] --service-principal-secret [secret] --tenant-id [tenantid]

具有证书的服务主体

利用基于证书的身份验证,可以更安全地使用服务主体进行身份验证。 代理接受同时包含私钥和公钥的 PCKS #12 (.PFX) 文件和 ASCII 编码的文件(如 .PEM)。 证书必须在本地磁盘上可用,并且运行 azcmagent 命令的用户需要对文件具有读取访问权限。 不支持受密码保护的 PFX 文件。

要使用证书向服务主体进行身份验证,请提供服务主体的应用程序 ID、租户 ID 和证书文件的路径:--service-principal-id [appId] --service-principal-cert [pathToPEMorPFXfile] --tenant-id [tenantid]

有关详细信息,请参阅使用基于证书的身份验证为 RBAC 创建服务主体

访问令牌

访问令牌也可用于非交互式身份验证,但其有效期很短,通常由自动化解决方案用于在短时间内加入多个服务器。 可以使用 Get-AzAccessToken 或任何其他 Microsoft Entra 客户端获取访问令牌。

若要使用访问令牌进行身份验证,请使用 --access-token [token] 标志。 如果用于登录的帐户和注册服务器的订阅不在同一个租户中,则还必须使用 --tenant-id [tenant] 提供该订阅的租户 ID。

Flags

--access-token

指定用于在 Azure 中创建已启用 Azure Arc 的服务器资源的 Microsoft Entra 访问令牌。 有关详细信息,请参阅身份验证选项

--automanage-profile

在服务器连接到 Azure 后,应用于该服务器的 Azure Automanage 最佳做法配置文件的资源 ID。

示例值:/providers/Microsoft.Automanage/bestPractices/AzureBestPracticesProduction

--cloud

指定 Azure 云实例。 必须与 --location 标志一起使用。 如果计算机已连接到 Azure Arc,则默认值为代理已连接到的云。 否则,默认值为“AzureCloud”。

支持的值:

  • AzureCloud(公共区域)
  • AzureUSGovernment(Azure 美国政府区域)
  • AzureChinaCloud(由世纪互联运营的 Azure 区域)

--correlation-id

标识用于将服务器连接到 Azure Arc 的机制。例如,在 Azure 门户中生成的脚本包含一个 GUID 用于帮助 Azure 跟踪该体验的使用情况。 此标志是可选的,仅用于遥测目的以改进体验。

--ignore-network-check

指示代理继续执行加入,即使所需终结点的网络检查失败。 仅当你确定网络检查结果不正确时,才应使用此选项。 在大多数情况下,网络检查失败表明 Azure Connected Machine 代理无法在服务器上正常运行。

-l--location

要检查其连接性的 Azure 区域。 如果计算机已连接到 Azure Arc,则选择当前区域作为默认值。

示例值:chinaeast2

--private-link-scope

指定要与服务器关联的 Azure Arc 专用链接范围的资源 ID。 如果使用专用终结点将服务器连接到 Azure,则此标志是必需的。

-g--resource-group

要在其中创建已启用 Azure Arc 的服务器资源的 Azure 资源组的名称。

示例值:HybridServers

-n--resource-name

已启用 Azure Arc 的服务器资源的名称。 默认情况下,该资源名称为:

  • AWS 实例 ID(如果服务器位于 AWS 上)
  • 所有其他计算机的主机名

你可以使用自己选择的名称来替代默认名称,以避免命名冲突。 选择后,除非断开连接再重新连接代理,否则无法更改 Azure 资源的名称。

如果你想要强制 AWS 服务器使用主机名而不是实例 ID,请传入 $(hostname) 以让 shell 评估当前主机名,然后将该主机名作为新资源名称传入。

示例值:FileServer01

-i--service-principal-id

指定用于在 Azure 中创建已启用 Azure Arc 的服务器资源的服务主体的应用程序 ID。 必须与 --tenant-id 以及 --service-principal-secret--service-principal-cert 标志一起使用。 有关详细信息,请参阅身份验证选项

--service-principal-cert

指定服务主体证书文件的路径。 必须与 --service-principal-id--tenant-id 标志一起使用。 证书必须包含私钥,并且可以采用 PKCS #12 (.PFX) 或 ASCII 编码的文本(.PEM、.CRT)格式。 不支持受密码保护的 PFX 文件。 有关详细信息,请参阅身份验证选项

-p--service-principal-secret

指定服务主体机密。 必须与 --service-principal-id--tenant-id 标志一起使用。 为了避免在控制台日志中暴露机密,Azure 建议在配置文件中提供服务主体机密。 有关详细信息,请参阅身份验证选项

-s--subscription-id

要在其中创建已启用 Azure Arc 的服务器资源的订阅名称或 ID。

示例值:Production、aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeeeeee

--tags

要应用于已启用 Azure Arc 的服务器资源的标记的逗号分隔列表。 应按以下格式指定每个标记:TagName=TagValue。 如果标记名称或值包含空格,请在名称或值的两侧使用单引号。

示例值:Datacenter=NY3,Application=SharePoint,Owner='Shared Infrastructure Services'

-t--tenant-id

要在其中创建已启用 Azure Arc 的服务器资源的订阅的租户 ID。 使用服务主体进行身份验证时,此标志是必需的。 对于所有其他身份验证方法,用于向 Azure 进行身份验证的帐户的主租户也用于资源。 如果帐户和订阅的租户不同(来宾帐户、Lighthouse),则必须指定租户 ID 以澄清订阅所在的租户。

--use-device-code

生成一个 Microsoft Entra 设备登录代码,可在另一台计算机上的 Web 浏览器中输入该代码,以便在 Azure 中对代理进行身份验证。 有关详细信息,请参阅身份验证选项

--user-tenant-id

用于将服务器连接到 Azure 的帐户的租户 ID。 如果载入帐户的租户与已启用 Azure Arc 的服务器资源所需的租户不同,则需要此字段。

适用于所有命令的通用标志

--config

接受包含命令输入的 JSON 或 YAML 文件的路径。 配置文件应包含一系列键值对,其中键与可用的命令行选项匹配。 例如,若要传入 --verbose 标志,配置文件将如下所示:

{
    "verbose": true
}

如果在命令调用和配置文件中找到命令行选项,则命令行中指定的值优先。

-h--help

获取有关当前命令的帮助,包括其语法和命令行选项。

-j--json

以 JSON 格式输出命令结果。

--log-stderr

将错误和详细消息重定向到标准错误 (stderr) 流。 默认情况下,所有输出都发送到标准输出 (stdout) 流。

--no-color

禁用不支持 ANSI 颜色的终端的颜色输出。

-v--verbose

在执行命令时显示更详细的日志记录信息。 用于排查运行命令时出现的问题。