Rozšíření Desired State Configuration pomocí šablon Azure Resource Manageru
Poznámka:
Než povolíte rozšíření DSC, rádi bychom věděli, že novější verze DSC je teď obecně dostupná a spravuje ji funkce s názvem konfigurace počítače. Funkce konfigurace počítače zahrnuje funkce obslužné rutiny rozšíření DSC (Desired State Configuration) a nejčastěji požadované funkce od zpětné vazby zákazníků. Konfigurace počítače také zahrnuje podporu hybridních počítačů prostřednictvím serverů s podporou Arc.
Tento článek popisuje šablonu Azure Resource Manageru pro obslužnou rutinu rozšíření DSC (Desired State Configuration).
Poznámka:
Můžete narazit na mírně odlišné příklady schématu. Ve verzi z října 2016 došlo ke změně schématu. Podrobnosti najdete v tématu Aktualizace z předchozího formátu.
Příklad Bicep pro virtuální počítač
Rozšíření DSC dědí výchozí vlastnosti rozšíření. Další informace naleznete v tématu VirtualMachineExtension třída.
@description('URI of the configuration package')
param configUri string
@description('first configuration parameter')
param arg1 string
@description('second configuration parameter')
@secure()
param arg2 string
var configName = split(split(configUri, '/')[4], '.')[0]
resource vm 'Microsoft.Compute/virtualMachines@2023-09-01' existing = {
name: srvName
}
resource configuration_dscext 'Microsoft.Compute/virtualMachines/extensions@2024-07-01' = {
name: 'configurationname_dscext'
parent: vm
location: location
properties: {
publisher: 'Microsoft.Powershell'
type: 'DSC'
typeHandlerVersion: '2.77'
autoUpgradeMinorVersion: true
settings: {
wmfVersion: 'latest'
configuration: {
url: configUri
script: 'configurationname_dscext.ps1'
function: 'configurationname_dscext'
}
configurationArguments: {
arg1: arg1
}
advancedOptions: {
rebootNodeIfNeeded: true
}
}
protectedSettings: {
configurationArguements: {
arg2: arg2
}
}
}
}
Příklad Bicep pro škálovací sady virtuálních počítačů s Windows
Uzel škálovací sady virtuálních počítačů má oddíl, který obsahuje atribut extensionProfile . V části Rozšíření přidejte podrobnosti o rozšíření DSC.
Nejnovější podrobnosti o vytváření šablon, které nasazují rozšíření pro Virtual Machine Scale Sets, najdete v dokumentu Microsoft.Compute virtualMachineScaleSets.
Rozšíření DSC dědí výchozí vlastnosti rozšíření. Další informace naleznete v tématu VirtualMachineScaleSetExtension třída.
Nastavení vs. protectedSettings
Všechna nastavení se ukládají do textového souboru nastavení na virtuálním počítači. Vlastnosti uvedené v nastavení jsou veřejné vlastnosti. Veřejné vlastnosti nejsou v textovém souboru nastavení šifrované. Vlastnosti uvedené v části protectedSettings se šifrují pomocí certifikátu a v souboru nastavení na virtuálním počítači se nezobrazují ve formátu prostého textu.
Pokud konfigurace vyžaduje přihlašovací údaje, můžete přihlašovací údaje zahrnout do protectedSettings:
"protectedSettings": {
"configurationArguments": {
"parameterOfTypePSCredential1": {
"userName": "UsernameValue1",
"password": "PasswordValue1"
}
}
}
Příklad použití konfiguračního skriptu ve službě Azure Storage
Následující příklad je z přehledu obslužné rutiny rozšíření DSC.
V tomto příkladu se k nasazení rozšíření používají šablony Resource Manageru místo rutin.
Uložte konfiguraci IisInstall.ps1, umístěte ji do souboru .zip (příklad: iisinstall.zip
) a pak soubor nahrajte do přístupné adresy URL.
Tento příklad používá službu Azure Blob Storage, ale můžete stáhnout .zip soubory z libovolného umístění.
V šabloně Resource Manageru následující kód dá virtuálnímu počítači pokyn ke stažení správného souboru a spuštění příslušné funkce PowerShellu:
"settings": {
"configuration": {
"url": "https://demo.blob.core.windows.net/iisinstall.zip",
"script": "IisInstall.ps1",
"function": "IISInstall"
}
},
"protectedSettings": {
"configurationUrlSasToken": "odLPL/U1p9lvcnp..."
}
Aktualizace z předchozího formátu
Všechna nastavení v předchozím formátu rozšíření (a které mají veřejné vlastnosti ModulesUrl, ModuleSource, ModuleVersion, ConfigurationFunction, SasToken nebo Properties) se automaticky přizpůsobí aktuálnímu formátu rozšíření. Běží stejně jako předtím.
Následující schéma ukazuje, jak vypadalo předchozí schéma nastavení:
"settings": {
"WMFVersion": "latest",
"ModulesUrl": "https://UrlToZipContainingConfigurationScript.ps1.zip",
"SasToken": "SAS Token if ModulesUrl points to private Azure Blob Storage",
"ConfigurationFunction": "ConfigurationScript.ps1\\ConfigurationFunction",
"Properties": {
"ParameterToConfigurationFunction1": "Value1",
"ParameterToConfigurationFunction2": "Value2",
"ParameterOfTypePSCredential1": {
"UserName": "UsernameValue1",
"Password": "PrivateSettingsRef:Key1"
},
"ParameterOfTypePSCredential2": {
"UserName": "UsernameValue2",
"Password": "PrivateSettingsRef:Key2"
}
}
},
"protectedSettings": {
"Items": {
"Key1": "PasswordValue1",
"Key2": "PasswordValue2"
},
"DataBlobUri": "https://UrlToConfigurationDataWithOptionalSasToken.psd1"
}
Tady je postup, jak se předchozí formát přizpůsobí aktuálnímu formátu:
Název aktuální vlastnosti | Předchozí ekvivalent schématu |
---|---|
settings.wmfVersion | nastavení. WMFVersion |
settings.configuration.url | nastavení. ModulesUrl |
settings.configuration.script | První část nastavení ConfigurationFunction (před \\) |
settings.configuration.function | Druhá část nastavení. ConfigurationFunction (za \\) |
settings.configuration.module.name | nastavení. ModuleSource |
settings.configuration.module.version | nastavení. ModuleVersion |
settings.configurationArguments | nastavení. Vlastnosti |
settings.configurationData.url | protectedSettings.DataBlobUri (bez tokenu SAS) |
settings.privacy.dataCollection | nastavení. Privacy.dataCollection |
settings.advancedOptions.downloadMappings | nastavení. AdvancedOptions.DownloadMappings |
protectedSettings.configurationArguments | protectedSettings.Properties |
protectedSettings.configurationUrlSasToken | nastavení. SasToken |
protectedSettings.configurationDataUrlSasToken | Token SAS z protectedSettings.DataBlobUri |
Řešení problému
Tady jsou některé chyby, na které můžete narazit a jak je můžete opravit.
Neplatné hodnoty
"Privacy.dataCollection je '{0}'. Jedinými možnými hodnotami jsou '', 'Enable' a 'Disable'. "WmfVersion je '{0}'. Pouze možné hodnoty jsou ... a "latest".
Problém: Zadaná hodnota není povolená.
Řešení: Změňte neplatnou hodnotu na platnou hodnotu.
Neplatná adresa URL
"ConfigurationData.url je '{0}'. Toto není platná adresa URL DataBlobUri je .{0} Toto není platná adresa URL " Configuration.url je '{0}'. Toto není platná adresa URL.
Problém: Zadaná adresa URL není platná.
Řešení: Zkontrolujte všechny zadané adresy URL. Ujistěte se, že se všechny adresy URL přeloží na platná umístění, ke kterým má rozšíření přístup na vzdáleném počítači.
Neplatný typ ConfigurationArgument
"Neplatný typ {0}configurationArguments"
Problém: Vlastnost ConfigurationArguments nemůže přeložit na objekt tabulky hash.
Řešení: Nastavte vlastnost ConfigurationArguments na tabulku hash. Postupujte podle formátu uvedeného v předchozích příkladech. Sledujte uvozovky, čárky a složené závorky.
Duplicitní konfigurační archivy
"Nalezeny duplicitní argumenty '{0} ve veřejné i chráněné konfiguraciArguments"
Problém: ConfigurationArguments ve veřejných nastaveních a ConfigurationArguments v chráněných nastaveních mají vlastnosti se stejným názvem.
Řešení: Odeberte jednu z duplicitních vlastností.
Chybějící vlastnosti
"nastavení. Configuration.function vyžaduje, aby bylo zadáno nastavení.configuration.url nebo settings.configuration.module.
"nastavení. Configuration.url vyžaduje, aby byla zadána hodnota settings.configuration.script.
"nastavení. Configuration.script vyžaduje, aby bylo zadáno nastavení.configuration.url.
"nastavení. Configuration.url vyžaduje, aby bylo zadáno nastavení.configuration.function.
"protectedSettings.ConfigurationUrlSasToken vyžaduje, aby bylo zadáno nastavení.configuration.url"
"protectedSettings.ConfigurationDataUrlSasToken vyžaduje, aby bylo zadáno nastavení.configurationData.url"
Problém: Definovaná vlastnost potřebuje jinou vlastnost, která chybí.
Řešení:
- Zadejte chybějící vlastnost.
- Odeberte vlastnost, která potřebuje chybějící vlastnost.
Další kroky
- Seznamte se s používáním škálovacích sad virtuálních počítačů s rozšířením Azure DSC.
- Další podrobnosti o zabezpečené správě přihlašovacích údajů DSC
- Získejte úvod do obslužné rutiny rozšíření Azure DSC.
- Další informace o PowerShell DSC najdete v centru dokumentace k PowerShellu.