如何测试来宾配置包项目

PowerShell 模块 GuestConfiguration 包含用于在 Azure 外自动测试配置包的工具。 使用这些工具查找问题并快速进行迭代,然后在 Azure 连接的环境中进行测试。

开始测试之前,请执行如何设置来宾配置创作环境页中的所有步骤,然后执行如何创建自定义来宾配置包项目中的所有步骤以创建并发布自定义来宾配置包。

重要

审核环境状态的自定义包为正式发布版,但应用配置的包为预览版。 以下限制适用:

若要使用应用配置的来宾配置包,需要 Azure VM 来宾配置扩展版本 1.29.24 或更高版本。

若要在 Linux 上测试创建和应用配置,仅可以在 Ubuntu 18 上使用 GuestConfiguration 模块,但该模块生成的包和策略可用于 Azure 中支持的任何 Linux 发行版/版本。

无法在 MacOS 上测试包。

可以从工作站或持续集成和持续部署 (CI/CD) 环境对包进行测试。 GuestConfiguration 模块针对开发环境包含了在 Azure 计算机中所用的同一代理。 此代理包括适用于 Windows 的 PowerShell 7.1.3 和适用于 Linux 的 7.2.0-preview.7 的独立实例,因此测试包的脚本环境将与使用来宾配置管理的计算机一致。

Azure 计算机中的代理服务在 Windows 中作为“LocalSystem”帐户运行,在 Linux 中作为“根”运行。 在特权安全性上下文中运行下面的命令以获得最佳结果。

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

要在 Linux 中以根帐户运行 PowerShell,请使用 Su 命令

验证配置包是否满足要求

首先使用 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; Credential=; Dependencies=System.Obje…

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

最后,如果配置包模式为 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,以确认计算机现在处于正确的状态。

后续步骤