Azure Resource Manager şablonlarıyla istenen Durum Yapılandırması uzantısı
Not
DSC uzantısını etkinleştirmeden önce, makine yapılandırması adlı bir özellik tarafından yönetilen daha yeni bir DSC sürümünün genel olarak kullanılabilir olduğunu bilmenizi isteriz. Makine yapılandırma özelliği, İstenen Durum Yapılandırması (DSC) uzantısı işleyicisinin özelliklerini ve müşteri geri bildirimlerinden en sık istenen özellikleri içerir. Makine yapılandırması, Arc özellikli sunucular aracılığıyla karma makine desteği de içerir.
Bu makalede, İstenen Durum Yapılandırması (DSC) uzantısı işleyicisi için Azure Resource Manager şablonu açıklanmaktadır.
Not
Biraz farklı şema örnekleriyle karşılaşabilirsiniz. Şema değişikliği Ekim 2016 sürümünde gerçekleşti. Ayrıntılar için bkz . Önceki biçimden güncelleştirme.
VM için Bicep örneği
DSC uzantısı varsayılan uzantı özelliklerini devralır. Daha fazla bilgi için bkz . VirtualMachineExtension sınıfı.
@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
}
}
}
}
Windows sanal makine ölçek kümeleri için Bicep örneği
Sanal makine ölçek kümesi düğümünde extensionProfile özniteliği içeren bir bölüm vardır. Uzantılar'ın altında DSC Uzantısının ayrıntılarını ekleyin.
Sanal Makine Ölçek Kümeleri için uzantıları dağıtan şablon yazma hakkında en son ayrıntılar için Microsoft.Compute virtualMachineScaleSets belgesine bakın
DSC uzantısı varsayılan uzantı özelliklerini devralır. Daha fazla bilgi için bkz . VirtualMachineScaleSetExtension sınıfı.
Ayarlar ve protectedSettings karşılaştırması
Tüm ayarlar VM'deki bir ayarlar metin dosyasına kaydedilir. Ayarlar altında listelenen özellikler genel özelliklerdir. Genel özellikler ayarlar metin dosyasında şifrelenmez. protectedSettings altında listelenen özellikler bir sertifikayla şifrelenir ve VM'deki ayarlar dosyasında düz metin olarak gösterilmez.
Yapılandırma kimlik bilgilerine ihtiyaç duyuyorsa, kimlik bilgilerini protectedSettings'e ekleyebilirsiniz:
"protectedSettings": {
"configurationArguments": {
"parameterOfTypePSCredential1": {
"userName": "UsernameValue1",
"password": "PasswordValue1"
}
}
}
Azure Depolama'da yapılandırma betiğini kullanma örneği
Aşağıdaki örnek, DSC uzantısı işleyicisine genel bakıştır.
Bu örnek, uzantıyı dağıtmak için cmdlet'ler yerine Resource Manager şablonlarını kullanır.
IisInstall.ps1 yapılandırmasını kaydedin, .zip bir dosyaya (örnek: iisinstall.zip
) yerleştirin ve dosyayı erişilebilir bir URL'ye yükleyin.
Bu örnekte Azure Blob depolama kullanılır, ancak .zip dosyaları herhangi bir rastgele konumdan indirebilirsiniz.
Resource Manager şablonunda, aşağıdaki kod VM'ye doğru dosyayı indirmesini ve ardından uygun PowerShell işlevini çalıştırmasını belirtir:
"settings": {
"configuration": {
"url": "https://demo.blob.core.windows.net/iisinstall.zip",
"script": "IisInstall.ps1",
"function": "IISInstall"
}
},
"protectedSettings": {
"configurationUrlSasToken": "odLPL/U1p9lvcnp..."
}
Önceki biçimden güncelleştirme
Uzantının önceki biçimindeki (ve ModulesUrl, ModuleSource, ModuleVersion, ConfigurationFunction, SasToken veya Özellikler ortak özelliklerine sahip olan) tüm ayarlar otomatik olarak uzantının geçerli biçimine uyarlanabilir. Daha önce yaptıkları gibi koşuyorlar.
Aşağıdaki şema, önceki ayarlar şemasının nasıl göründüğünü gösterir:
"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"
}
Önceki biçimin geçerli biçime nasıl uyum sağladığı aşağıdadır:
Geçerli Özellik adı | Önceki şema eşdeğeri |
---|---|
settings.wmfVersion | Ayarlar. WMFVersion |
settings.configuration.url | Ayarlar. ModulesUrl |
settings.configuration.script | Ayarların ilk bölümü. ConfigurationFunction (\\'in öncesinde) |
settings.configuration.function | Ayarların ikinci bölümü. ConfigurationFunction (\\' sonrasında) |
settings.configuration.module.name | Ayarlar. ModuleSource |
settings.configuration.module.version | Ayarlar. ModuleVersion |
settings.configurationArguments | Ayarlar. Özellikler |
settings.configurationData.url | protectedSettings.DataBlobUri (SAS belirteci olmadan) |
settings.privacy.dataCollection | Ayarlar. Privacy.dataCollection |
settings.advancedOptions.downloadMappings | Ayarlar. AdvancedOptions.DownloadMappings |
protectedSettings.configurationArguments | protectedSettings.Properties |
protectedSettings.configurationUrlSasToken | Ayarlar. SasToken |
protectedSettings.configurationDataUrlSasToken | protectedSettings.DataBlobUri'den SAS belirteci |
Sorun giderme
Karşılaşabileceğiniz hatalardan bazıları ve bunları nasıl düzeltebileceğiniz aşağıda belirtilmiştir.
Geçersiz değerler
"Privacy.dataCollection is ''{0}. Yalnızca '', 'Enable' ve 'Disable' değerleri kullanılabilir. "WmfVersion: '{0}'. Yalnızca olası değerler... ve 'en son'".
Sorun: Sağlanan bir değere izin verilmiyor.
Çözüm: Geçersiz değeri geçerli bir değerle değiştirin.
Geçersiz URL
"ConfigurationData.url şudur: '{0}'. Bu geçerli bir URL değil" "DataBlobUri şudur: ''{0}. Bu geçerli bir URL değil" "Configuration.url is ''{0}. Bu geçerli bir URL değil"
Sorun: Sağlanan URL geçerli değil.
Çözüm: Sağlanan tüm URL'lerinizi denetleyin. Tüm URL'lerin uzantının uzak makinede erişebileceği geçerli konumlara çözümlediğinden emin olun.
Geçersiz ConfigurationArgument türü
"Geçersiz configurationArguments türü {0}"
Sorun: ConfigurationArguments özelliği Karma tablo nesnesine çözümlenemiyor.
Çözüm: ConfigurationArguments özelliğinizi Karma tablosu yapın. Önceki örneklerde sağlanan biçimi izleyin. Tırnak işaretleri, virgüller ve ayraçlar için dikkat edin.
Yinelenen ConfigurationArguments
"Hem genel hem de korumalı yapılandırmaDa yinelenen{0} bağımsız değişkenler bulunduArguments"
Sorun: Genel ayarlardaki ConfigurationArguments ve korumalı ayarlardaki ConfigurationArguments aynı ada sahip özelliklere sahiptir.
Çözüm: Yinelenen özelliklerden birini kaldırın.
Eksik özellikler
"ayarlar. Configuration.function için settings.configuration.url veya settings.configuration.module belirtilmelidir"
"ayarlar. Configuration.url için settings.configuration.script belirtilmelidir"
"ayarlar. Configuration.script için settings.configuration.url belirtilmelidir"
"ayarlar. Configuration.url için settings.configuration.function belirtilmelidir"
"protectedSettings.ConfigurationUrlSasToken için settings.configuration.url belirtiliyor"
"protectedSettings.ConfigurationDataUrlSasToken için settings.configurationData.url belirtiliyor"
Sorun: Tanımlı bir özelliğin eksik olan başka bir özelliğe ihtiyacı var.
Çözümler:
- Eksik özelliği sağlayın.
- Eksik özelliğe ihtiyaç duyan özelliği kaldırın.
Sonraki adımlar
- Azure DSC uzantısıyla sanal makine ölçek kümelerini kullanma hakkında bilgi edinin.
- DSC'nin güvenli kimlik bilgisi yönetimi hakkında daha fazla bilgi edinin.
- Azure DSC uzantı işleyicisine giriş alın.
- PowerShell DSC hakkında daha fazla bilgi için PowerShell belge merkezine gidin.