你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

如何测试计算机配置包项目

PowerShell 模块 GuestConfiguration 包含用于自动测试 Azure 外部的配置包的工具。 在 Azure 或 Arc 连接的环境中继续进行测试之前,使用这些工具查找问题并快速进行循环访问。

在开始测试之前,需要 设置创作环境创建自定义计算机配置包项目

重要

审核环境状态并应用配置的自定义包已处于正式发布(GA)支持状态。 但以下限制将适用:

若要使用应用配置的计算机配置包,需要 Azure VM 来宾配置扩展版本 1.26.24 或更高版本,或者 Arc 代理 1.10.0 或更高版本。

GuestConfiguration 模块仅在 Ubuntu 18 及更高版本上可用。 但是,该模块生成的包和策略可以在 Azure 或 Arc 中支持的任何 Linux 发行版/版本上使用。

macOS 上的测试包不可用。

你可以从工作站或持续集成和持续部署 (CI/CD) 环境测试该包。 GuestConfiguration 模块包含用于开发环境的代理,该代理与在已启用 Azure 或 Arc 的计算机中使用的代理相同。 该代理包括适用于 Windows 的 PowerShell 7.1.3 和适用于 Linux 的 7.2.0-preview.7 的独立实例。 独立实例确保测试包的脚本环境与使用计算机配置管理的计算机一致。

Azure 和已启用 Arc 的计算机中的代理服务在 Windows 中以 LocalSystem 帐户运行,在 Linux 中以 Root 运行。 为了获得最佳结果,请在具有特权的安全上下文中运行本文中的命令。

要在 Windows 中以 LocalSystem 运行 PowerShell,请使用 SysInternals 工具 PSExec

要在 Linux 中以 Root 运行 PowerShell,请使用 sudo 命令

验证配置包是否满足要求

首先使用 Get-GuestConfigurationPackageComplianceStatus 测试配置包是否满足基本要求。 该命令会验证以下包要求。

  • MOF 在正确的位置存在且有效
  • 所需模块/依赖项以正确的版本存在,没有重复项
  • 验证包是否签名(可选)
  • 测试 TestGet 是否返回有关合规性状态的信息

Get-GuestConfigurationPackageComplianceStatus cmdlet 的参数:

  • 路径:计算机配置包的文件路径或 URI。
  • Parameter:作为哈希表提供的策略参数。

首次运行此命令时,计算机配置代理会安装在测试计算机上,Windows 上的路径为 C:\ProgramData\GuestConfig\bin,Linux 上的路径为 /var/lib/GuestConfig/bin。 用户帐户无法访问此路径,因此该命令需要特权提升。

运行以下命令以测试包:

在 Windows 中,通过提升的 PowerShell 7 会话运行。

# Get the current compliance results for the local machine
Get-GuestConfigurationPackageComplianceStatus -Path ./MyConfig.zip

在 Linux 中,通过使用 sudo 运行 PowerShell。

# Get the current compliance results for the local machine
sudo pwsh -command 'Get-GuestConfigurationPackageComplianceStatus -Path ./MyConfig.zip'

该命令输出一个对象,其中包含每个资源的合规性状态和详细信息。

  complianceStatus  resources
  ----------------  ---------
  True              @{BuiltInAccount=localSystem; ConfigurationName=MyConfig; …

测试配置包是否可以应用配置

最后,如果配置包模式为 AuditandSet,则使用命令 Set 测试 Start-GuestConfigurationPackageRemediation 方法是否可以对本地计算机应用设置。

重要

此命令尝试在其运行的本地环境中做出更改。

Start-GuestConfigurationPackageRemediation cmdlet 的参数:

  • 路径:计算机配置包的完整路径。

在 Windows 中,通过提升的 PowerShell 7 会话运行。

# Test applying the configuration to local machine
Start-GuestConfigurationPackageRemediation -Path ./MyConfig.zip

在 Linux 中,通过使用 sudo 运行 PowerShell。

# Test applying the configuration to local machine
sudo pwsh -command 'Start-GuestConfigurationPackageRemediation -Path ./MyConfig.zip'

该命令仅在发生错误时返回输出。 要对在 Set 期间发生的事件进行详细的故障排除,请使用 -verbose 参数。

运行命令 Start-GuestConfigurationPackageRemediation 后,可以再次运行命令 Get-GuestConfigurationComplianceStatus,以确认计算机现在处于正确的状态。

下一步