使用 PowerShell 将混合计算机连接到 Azure

对于已启用 Azure Arc 的服务器,可以采取手动步骤为环境中的一个或多个 Windows 或 Linux 计算机启用这些服务器。 或者,可使用 PowerShell cmdlet Connect-AzConnectedMachine 下载 Connected Machine Agent,安装该代理,并将计算机注册到 Azure Arc。该 cmdlet 将从下载中心下载 Windows 代理包 (Windows Installer),并从 Microsoft 包存储库下载 Linux 代理包。

这种安装和配置代理的方法要求你在计算机上拥有管理员权限。 在 Linux 上,需使用 root 帐户;在 Windows 上,你需是“本地管理员组”的成员。 可以使用 PowerShell 远程处理在 Windows 服务器上以交互方式或远程方式完成此过程。

在开始之前,请查看先决条件,并验证你的订阅和资源是否符合要求。 有关支持的区域和其他相关注意事项的信息,请参阅 支持的 Azure 区域

如果没有 Azure 订阅,请在开始前创建一个试用版订阅

先决条件

你将使用 PowerShell 来管理由已启用 Azure Arc 的服务器所管理的混合服务器上的 VM 扩展。 使用 PowerShell 之前,请在要启用 Arc 的服务器上安装 Az.ConnectedMachine 模块。 在已启用 Azure Arc 的服务器上运行以下命令:

Install-Module -Name Az.ConnectedMachine

安装完成后,你将看到以下消息:

The installed extension ``Az.ConnectedMachine`` is experimental and not covered by customer support. Please use with discretion.

安装代理并连接到 Azure

  1. 使用提升的权限打开 PowerShell 控制台。

  2. 运行命令 Connect-AzAccount -Environment AzureChinaCloud 登录到 Azure。

  3. 若要安装 Connected Machine Agent,请将 Connect-AzConnectedMachine-Name-ResourceGroupName-Location 参数配合使用。 使用 -SubscriptionId 参数可替代默认订阅(登录后创建的 Azure 上下文的结果)。 运行下列命令之一:

    • 若要在可以直接与 Azure 通信的目标计算机上安装 Connected Machine Agent,请运行:

      Connect-AzConnectedMachine -ResourceGroupName myResourceGroup -Name myMachineName -Location <region>
      
    • 若要在通过代理服务器通信的目标计算机上安装 Connected Machine Agent,请运行:

      Connect-AzConnectedMachine -ResourceGroupName myResourceGroup -Name myMachineName -Location <region> -Proxy http://<proxyURL>:<proxyport>
      

    使用此配置,代理使用 HTTP 协议通过代理服务器进行通信。

如果完成安装后代理无法启动,请检查日志以获取详细的错误信息。 在 Windows 上检查以下文件: %ProgramData%\AzureConnectedMachineAgent\Log\himds.log。 在 Linux 上检查以下文件: /var/opt/azcmagent/log/himds.log

使用 PowerShell 远程处理进行安装和连接

下面介绍如何为一个或多个 Windows 服务器配置已启用 Azure Arc 的服务器。必须在远程计算机上启用 PowerShell 远程处理。 请使用 Enable-PSRemoting cmdlet 完成此操作。

  1. 以管理员身份打开 PowerShell 控制台。

  2. 运行命令 Connect-AzAccount -Environment AzureChinaCloud 登录到 Azure。

  3. 若要安装 Connected Machine Agent,请将 Connect-AzConnectedMachine-ResourceGroupName-Location 参数配合使用。 Azure 资源名称将自动使用每个服务器的主机名。 使用 -SubscriptionId 参数可替代默认订阅(登录后创建的 Azure 上下文的结果)。

    • 若要在可以直接与 Azure 通信的目标计算机上安装 Connected Machine Agent,请运行以下命令:

      $sessions = New-PSSession -ComputerName myMachineName
      Connect-AzConnectedMachine -ResourceGroupName myResourceGroup -Location <region> -PSSession $sessions
      
    • 若要同时在多个远程计算机上安装 Connected Machine Agent,请添加远程计算机名列表,并以逗号分隔每个计算机名。

      $sessions = New-PSSession -ComputerName myMachineName1, myMachineName2, myMachineName3
      Connect-AzConnectedMachine -ResourceGroupName myResourceGroup -Location <region> -PSSession $sessions
      

    以下示例显示了针对单个计算机运行该命令的结果:

    time="2020-08-07T13:13:25-07:00" level=info msg="Onboarding Machine. It usually takes a few minutes to complete. Sometimes it may take longer depending on network and server load status."
    time="2020-08-07T13:13:25-07:00" level=info msg="Check network connectivity to all endpoints..."
    time="2020-08-07T13:13:29-07:00" level=info msg="All endpoints are available... continue onboarding"
    time="2020-08-07T13:13:50-07:00" level=info msg="Successfully Onboarded Resource to Azure" VM Id=f65bffc7-4734-483e-b3ca-3164bfa42941
    
    Name           Location OSName   Status     ProvisioningState
    ----           -------- ------   ------     -----------------
    myMachineName  chinaeast2   windows  Connected  Succeeded
    

验证是否与 Azure Arc 连接

安装并配置要注册到已启用 Azure Arc 的服务器的代理后,转到 Azure 门户以验证是否已成功连接服务器。 在 Azure 门户中查看你的计算机。

Screenshot of Servers dashboard, showing a successful server connection.

后续步骤