Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Notitie
De DSC-extensie wordt op 31 maart 2028 beëindigd. Ga naar Azure Machine Configuration op die datum. Voor meer informatie kunt u de aankondiging van de blogpost bekijken. De Azure Machine Configuration-service combineert bepaalde eigenschappen van de DSC-extensie, Azure Automation State Configuration, en veelgevraagde functies uit feedback van klanten. Azure Machine Configuration omvat ook hybride machine-ondersteuning via Arc-ingeschakelde servers.
Dit artikel beschrijft de Azure Resource Manager-sjabloon voor de Desired State Configuration (DSC) extensie-handler.
Notitie
U kunt tegen enigszins verschillende schema-voorbeelden aanlopen. De wijziging in het schema vond plaats in de release van oktober 2016. Voor details, zie Update van een vorige indeling.
Notitie
New! VM-hulp proberen voor snellere diagnostische gegevens' U wordt aangeraden VM-hulp uit te voeren voor Windows of VM-hulp voor Linux. Met deze diagnostische hulpprogramma's op basis van scripts kunt u veelvoorkomende problemen identificeren die van invloed zijn op de Azure VM-gastagent en de algehele VM-status.
Bicep-voorbeeld voor een virtuele machine
De DSC-extensie erft de standaard extensie-eigenschappen. Voor meer informatie, zie VirtualMachineExtension class.
@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: {
configurationArguments: {
arg2: arg2
}
}
}
}
Bicepvoorbeeld voor Windows virtuele machine schaalsets
Een knooppunt van een schaalset voor virtuele machines heeft een sectie die een extensionProfile-attribuut bevat. Onder extensies, voeg de details toe voor de DSC-extensie.
Zie het document Microsoft.Compute virtualMachineScaleSets voor meer informatie over het ontwerpen van sjablonen voor het implementeren van extensies voor Virtuele-machineschaalsets
De DSC-extensie erft de standaard extensie-eigenschappen. Voor meer informatie, zie VirtualMachineScaleSetExtension class.
Instellingen versus protectedSettings
Alle instellingen worden opgeslagen in een tekstbestand met instellingen op de VM. Eigenschappen die onder instellingen zijn vermeld, zijn openbare eigenschappen. Openbare eigenschappen zijn niet versleuteld in het instellingenbestand. Eigenschappen die worden vermeld onder protectedSettings , worden versleuteld met een certificaat en worden niet weergegeven in tekst zonder opmaak in het instellingenbestand op de virtuele machine.
Als de configuratie referenties nodig heeft, kunt u de referenties opnemen in protectedSettings:
"protectedSettings": {
"configurationArguments": {
"parameterOfTypePSCredential1": {
"userName": "UsernameValue1",
"password": "PasswordValue1"
}
}
}
Voorbeeld van het gebruik van het configuratiescript in Azure Storage
Het volgende voorbeeld is afkomstig uit het DSC extension handler overzicht.
Dit voorbeeld gebruikt Resource Manager-sjablonen in plaats van cmdlets om de extensie te implementeren.
Sla de IisInstall.ps1 configuratie op, plaats deze in een .zip-bestand (voorbeeld: iisinstall.zip) en upload vervolgens het bestand naar een toegankelijke URL.
Dit voorbeeld maakt gebruik van Azure Blob-opslag, maar je kunt .zip-bestanden downloaden van elke willekeurige locatie.
In de Resource Manager-sjabloon instrueert de volgende code de VM om het juiste bestand te downloaden en vervolgens de juiste PowerShell-functie uit te voeren.
"settings": {
"configuration": {
"url": "https://demo.blob.core.windows.net/iisinstall.zip",
"script": "IisInstall.ps1",
"function": "IISInstall"
}
},
"protectedSettings": {
"configurationUrlSasToken": "odLPL/U1p9lvcnp..."
}
Bijwerken van een vorig formaat
Instellingen in een vorig formaat van de extensie (en die de openbare eigenschappen ModulesUrl, ModuleSource, ModuleVersion, ConfigurationFunction, SasToken of Properties hebben) passen zich automatisch aan het huidige formaat van de extensie aan. Ze rennen net zoals ze eerder deden.
Het volgende schema toont hoe het vorige instellingen-schema eruitzag:
"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"
}
Zo past het vorige formaat zich aan het huidige formaat aan:
| Huidige Eigenschapsnaam | Vorig schema-equivalent |
|---|---|
| settings.wmfVersion | settings.WMFVersion |
| instellingen.configuratie.url | instellingen.ModulesUrl |
| instellingen.configuratie.script | Eerste deel van instellingen.ConfigurationFunction (voor \\) |
| instellingen.configuratie.functie | Tweede deel van de instellingen.ConfigurationFunction (na \\) |
| settings.configuration.module.name | instellingen.ModuleBron |
| settings.configuration.module.version | settings.ModuleVersion |
| instellingen.configuratieArgumenten | instellingen.Eigenschappen |
| settings.configurationData.url | protectedSettings.DataBlobUri (zonder SAS-token) |
| instellingen.privacy.gegevensverzameling | Instellingen.Privacy.Gegevensverzameling |
| instellingen.geavanceerdeOpties.downloadMapping | instellingen.GeavanceerdeOpties.DownloadMappings |
| beschermdeInstellingen.configuratieArgumenten | protectedSettings.Eigenschappen |
| protectedSettings.configuratieUrlSasToken | instellingen.SasToken |
| protectedSettings.configurationDataUrlSasToken | SAS-token van protectedSettings.DataBlobUri |
Troubleshooting
Hier zijn enkele fouten die je kunt tegenkomen en hoe je ze kunt oplossen.
Ongeldige waarden
Privacy.dataCollection is '{0}'. De enige mogelijke waarden zijn '', 'Inschakelen', en 'Uitschakelen'. "WmfVersion is '{0}'." Alleen mogelijke waarden zijn … en 'laatste'".
Probleem: Een opgegeven waarde is niet toegestaan.
Oplossing: Verander de ongeldige waarde in een geldige waarde.
Ongeldige URL
"ConfigurationData.url is '{0}'. Dit is geen geldige URL" "DataBlobUri is '{0}'. Dit is geen geldige URL" "Configuration.url is '{0}'. Dit is geen geldige URL.
Probleem: Een opgegeven URL is niet geldig.
Oplossing: Controleer alle door u opgegeven URL's. Zorg ervoor dat alle URL's naar geldige locaties leiden die de extensie kan benaderen op de externe machine.
Ongeldig configuratieargumenttype
Ongeldig configuratieargumenttype {0}
Probleem: De eigenschap ConfigurationArguments kan niet worden opgelost naar een Hash-tabel-object.
Oplossing: Maak van de eigenschap ConfigurationArguments een Hash-tabel. Volg het formaat zoals in de voorgaande voorbeelden is aangegeven. Let op aanhalingstekens, komma's en accolades.
Dubbele ConfiguratieArgumenten
"Gevonden dubbele argumenten '{0}' in zowel openbare als beschermde configuratie-argumenten"
Probleem: De ConfigurationArguments in openbare instellingen en configurationArguments in beveiligde instellingen hebben eigenschappen met dezelfde naam.
Oplossing: Verwijder een van de dubbele eigenschappen.
Ontbrekende eigenschappen
instellingen.Configuration.function vereist dat instellingen.configuratie.url of instellingen.configuratie.module is opgegeven
"settings.Configuration.url vereist dat settings.configuration.script is gespecificeerd"
"settings.Configuration.script vereist dat settings.configuration.url is gespecificeerd"
"settings.Configuration.url vereist dat settings.configuration.function is gespecificeerd"
"protectedSettings.ConfigurationUrlSasToken vereist dat settings.configuration.url is gespecificeerd"
"protectedSettings.ConfigurationDataUrlSasToken vereist dat settings.configurationData.url is gespecificeerd"
Probleem: Een gedefinieerde eigenschap heeft een andere eigenschap nodig, die ontbreekt.
Solutions:
- Voorzie de ontbrekende eigenschap.
- Verwijder de eigenschap waarvoor de ontbrekende eigenschap nodig is.
Volgende stappen
- Meer informatie over het gebruik van virtuele-machineschaalsets met de Azure DSC-extensie.
- Meer informatie over het veilige referentiebeheer van DSC.
- Krijg een inleiding tot de Azure DSC-extensiehandler.
- Ga naar het PowerShell-documentatiecentrum voor meer informatie over PowerShell DSC.