PowerShell DSC 延伸模組
注意
啟用 DSC 延伸模組之前,我們希望您知道現在已正式推出較新版本的 DSC,由名為機器設定的 Azure Automange 功能所管理。 機器設定功能結合 Desired State Configuration (DSC) 延伸模組處理常式、Azure 自動化狀態設定,以及客戶意見反應最常要求的功能。 機器設定也包含混合機器支援 (透過已啟用 Arc 的伺服器提供)。
概觀
Microsoft 已發佈並支援適用於 Windows 的 PowerShell DSC 擴充功能。 此擴充功能會在 Azure VM 上,上傳並套用 PowerShell DSC 設定。 DSC 擴充功能會呼叫 PowerShell DSC,以便在 VM 上套用所收到的 DSC 設定。 本文件詳述適用於 Windows 的 DSC 虛擬機器擴充功能所支援的平台、組態和部署選項。
必要條件
作業系統
DSC 擴充功能支援下列作業系統
Windows Server 2022、Windows Server 2019、Windows Server 2016、Windows Server 2012 R2、Windows Server 2012、Windows Server 2008 R2 SP1、Windows Client 7/8.1/10
網際網路連線能力
Windows 的 DSC 擴充功能需要目標虛擬機器能夠與 Azure 和設定套件的位置 (如果設定套件 (.zip 檔案) 儲存在 Azure 外部的位置) 通訊。
擴充功能結構描述
下列 JSON 顯示 Azure Resource Manager 範本中 DSC 擴充功能設定部分的結構描述。
{
"type": "Microsoft.Compute/virtualMachines/extensions",
"name": "Microsoft.Powershell.DSC",
"apiVersion": "2018-10-01",
"location": "<location>",
"properties": {
"publisher": "Microsoft.Powershell",
"type": "DSC",
"typeHandlerVersion": "2.77",
"autoUpgradeMinorVersion": true,
"settings": {
"wmfVersion": "latest",
"configuration": {
"url": "http://validURLToConfigLocation",
"script": "ConfigurationScript.ps1",
"function": "ConfigurationFunction"
},
"configurationArguments": {
"argument1": "Value1",
"argument2": "Value2"
},
"configurationData": {
"url": "https://foo.psd1"
},
"privacy": {
"dataCollection": "enable"
},
"advancedOptions": {
"forcePullAndApply": false,
"downloadMappings": {
"specificDependencyKey": "https://myCustomDependencyLocation"
}
}
},
"protectedSettings": {
"configurationArguments": {
"parameterOfTypePSCredential1": {
"userName": "UsernameValue1",
"password": "PasswordValue1"
},
"parameterOfTypePSCredential2": {
"userName": "UsernameValue2",
"password": "PasswordValue2"
}
},
"configurationUrlSasToken": "?g!bber1sht0k3n",
"configurationDataUrlSasToken": "?dataAcC355T0k3N"
}
}
}
屬性值
名稱 | 值 / 範例 | 資料類型 |
---|---|---|
apiVersion | 2018-10-01 | date |
publisher | Microsoft.Powershell.DSC | string |
type | DSC | string |
typeHandlerVersion | 2.77 | int |
設定屬性值
名稱 | 資料類型 | 描述 |
---|---|---|
settings.wmfVersion | string | 指定應該安裝於 VM 的 Windows Management Framework 版本。 將此屬性設定為 'latest' 將會安裝最新版的 WMF。 此屬性目前只有下列可能值:‘4.0’、‘5.0’ 及 ‘latest’。 這些可能的值可能會更新。 預設值為 ‘latest’。 |
settings.configuration.url | string | 指定要從中下載 DSC 組態 zip 檔的 URL 位置。 如果提供的 URL 需要 SAS 權杖才能存取,您必須將 protectedSettings.configurationUrlSasToken 屬性設定為 SAS 權杖的值。 如果已定義 settings.configuration.script 和/或 settings.configuration.function,則需要這個屬性。 |
settings.configuration.script | string | 指定指令碼的檔案名稱,其中包含 DSC 組態的定義。 此指令碼必須位於從 configuration.url 屬性所指定的 URL 下載之 zip 檔案的根資料夾中。 如果已定義 settings.configuration.url 和/或 settings.configuration.script,則需要這個屬性。 |
settings.configuration.function | string | 指定 DSC 組態的名稱。 命名的組態必須包含在 configuration.script 所定義的指令碼中。 如果已定義 settings.configuration.url 和/或 settings.configuration.function,則需要這個屬性。 |
settings.configurationArguments | 集合 | 定義任何您想要傳遞至 DSC 組態的參數。 此屬性將不會經過加密。 |
settings.configurationData.url | string | 指定 URL,從中下載您的組態資料 (.pds1) 檔案以做為 DSC 組態的輸入。 如果提供的 URL 需要 SAS 權杖才能存取,您必須將 protectedSettings.configurationDataUrlSasToken 屬性設定為 SAS 權杖的值。 |
settings.privacy.dataEnabled | string | 啟用或停用遙測收集。 此屬性只有下列可能值:‘Enable’、‘Disable’ 或 $null。 將此屬性保留空白或 null 將會啟用遙測 |
settings.advancedOptions.forcePullAndApply | Bool | 此設定的設計目的是要增強使用擴充功能的體驗,以向 Azure Automation DSC 註冊節點。 如果值為 $true ,擴充功能會先等候從服務提取的組態第一次執行,然後再傳回成功/失敗。 如果此值設定為 $false,擴充功能所傳回的狀態只會參考節點是否已成功向 Azure 自動化狀態設定註冊,且節點組態將不會在註冊期間執行。 |
settings.advancedOptions.downloadMappings | 集合 | 定義下載相依性 (例如 WMF 和 .NET) 的替代位置 |
受保護的設定屬性值
名稱 | 資料類型 | 描述 |
---|---|---|
protectedSettings.configurationArguments | string | 定義任何您想要傳遞至 DSC 組態的參數。 此屬性將會經過加密。 |
protectedSettings.configurationUrlSasToken | string | 指定 SAS 權杖,以存取 configuration.url 所定義的 URL。 此屬性將會經過加密。 |
protectedSettings.configurationDataUrlSasToken | string | 指定 SAS 權杖,以存取 configurationData.url 所定義的 URL。 此屬性將會經過加密。 |
範本部署
也可以使用 Azure Resource Manager 範本部署 Azure VM 擴充功能。 部署一或多部需要部署後設定的虛擬機器時,很適合使用範本。 在 Azure 快速啟動資源庫上可找到包含 Windows 的 DSC 擴充功能的 Resource Manager 範本範例。
疑難排解與支援
疑難排解
使用 Azure CLI,就可以從 Azure 入口網站擷取有關擴充功能部署狀態的資料。 若要查看指定 VM 的擴充功能部署狀態,請使用 Azure CLI 執行下列命令。
az vm extension list --resource-group myResourceGroup --vm-name myVM -o table
系統便會下載擴充功能套件,並部署至 Azure VM 上的這個位置
C:\Packages\Plugins\{Extension_Name}\{Extension_Version}
擴充功能狀態檔案包含子狀態和狀態成功/錯誤代碼,以及每次擴充功能執行的詳細錯誤和描述。
C:\Packages\Plugins\{Extension_Name}\{Extension_Version}\Status\{0}.Status -> {0} being the sequence number
擴充功能輸出記錄會記錄到下列目錄:
C:\WindowsAzure\Logs\Plugins\{Extension_Name}\{Extension_Version}
錯誤碼及其意義
錯誤碼 | 意義 | 可能的動作 |
---|---|---|
1000 | 一般錯誤 | 擴充功能記錄中的特定例外狀況會提供此錯誤的訊息 |
52 | 擴充功能安裝錯誤 | 特定例外狀況會提供此錯誤的訊息 |
1002 | Wmf 安裝錯誤 | 安裝 WMF 時發生錯誤。 |
1004 | Zip 套件無效 | Zip 無效;解壓縮 Zip 時發生錯誤 |
1100 | 引數錯誤 | 表示使用者所提供的輸入有問題。 特定例外狀況會提供此錯誤的訊息 |
支援
如果您在本文中有任何需要協助的地方,您可以連絡 MSDN Azure 和 Stack Overflow 論壇上的 Azure 專家。 或者,您可以提出 Azure 支援事件。 請移至 Azure 支援網站,然後選取 [取得支援]。 如需使用 Azure 支援的資訊,請參閱 Microsoft Azure 支援常見問題集。