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
在执行命令时显示更详细的日志记录信息。 用于排查运行命令时出现的问题。