Share via


如何測試電腦設定套件成品

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 的機器中,代理程式服務會以 LocalSystem 帳戶在 Windows 中執行,並以 Root 在 Linux 中執行。 在特殊權限安全性內容中執行本文中的命令,以獲得最佳結果。

若要在 Windows 中以 LocalSystem 執行 PowerShell,請使用 SysInternals 工具 PSExec

若要在 Linux 中以 Root 執行 PowerShell,請使用 sudo 命令

驗證組態套件是否符合需求

首先,使用 Get-GuestConfigurationPackageComplianceStatus 測試組態套件是否符合基本需求。 此命令會驗證下列套件需求。

  • MOF 存在且有效,位於正確的位置
  • 必要的模組/相依性會與適當的版本一起存在,沒有重複項目
  • 驗證套件是否已簽署 (選擇性)
  • 測試 TestGet 傳回合規性狀態相關資訊

Get-GuestConfigurationPackageComplianceStatus Cmdlet 的參數:

  • 路徑:機器組態套件的檔案路徑或 URI。
  • 參數:提供做為雜湊表的原則參數。

第一次執行此命令時,機器設定代理程式會安裝在測試電腦上,路徑為 C:\ProgramData\GuestConfig\bin (在 Windows 上) 和 /var/lib/GuestConfig/bin (在 Linux 上)。 使用者帳戶無法存取此路徑,因此命令需要提高權限。

執行下列命令以測試套件:

在 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 命令,以確認電腦目前處於正確的狀態。

後續步驟