Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Uwaga
Rozszerzenie DSC zostanie wycofane 31 marca 2028 r. Przejdź do usługi Azure Machine Configuration do tej daty. Więcej informacji można znaleźć w ogłoszeniu na blogu. Usługa Azure Machine Configuration łączy niektóre funkcje rozszerzenia DSC, usługi Azure Automation State Configuration i często żądane funkcje opinii klientów. Usługa Azure Machine Configuration obejmuje również obsługę maszyn hybrydowych za pośrednictwem serwerów z obsługą usługi Arc.
W tym artykule opisano szablon usługi Azure Resource Manager dla procedury obsługi rozszerzenia Desired State Configuration (DSC).
Uwaga
Możesz napotkać nieco inne przykłady schematów. Zmiana schematu miała miejsce w wydaniu z października 2016 r. Aby uzyskać szczegółowe informacje, patrz Aktualizowanie z poprzedniego formatu.
Uwaga
Wypróbuj pomoc maszyny wirtualnej, aby uzyskać szybszą diagnostykę. Zalecamy uruchomienie asysty maszyny wirtualnej dla systemu Windows lub asystenta maszyny wirtualnej dla systemu Linux. Te narzędzia diagnostyczne oparte na skryptach ułatwiają identyfikowanie typowych problemów, które mają wpływ na agenta gościa maszyny wirtualnej platformy Azure i ogólną kondycję maszyny wirtualnej.
Jeśli występują problemy z wydajnością maszyn wirtualnych, przed skontaktowaniem się z pomocą techniczną uruchom te narzędzia.
Przykład skryptu Bicep dla maszyny wirtualnej
Rozszerzenie DSC dziedziczy domyślne właściwości rozszerzenia. Aby uzyskać więcej informacji, zobacz klasa VirtualMachineExtension.
@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
}
}
}
}
Przykład Bicep dla zestawów skalowania maszyn wirtualnych z systemem Windows
Węzeł zestawu skalowania maszyn wirtualnych ma sekcję, która zawiera atrybut extensionProfile. W obszarze rozszerzenia dodaj szczegóły rozszerzenia DSC.
Aby uzyskać najnowsze szczegóły dotyczące tworzenia szablonów, które wdrażają rozszerzenia dla zestawów skalowania maszyn wirtualnych, zobacz dokument Microsoft.Compute virtualMachineScaleSets
Rozszerzenie DSC dziedziczy domyślne właściwości rozszerzenia. Aby uzyskać więcej informacji, zobacz klasę VirtualMachineScaleSetExtension.
Ustawienia a chronione ustawienia
Wszystkie ustawienia są zapisywane w pliku tekstowym ustawień na maszynie wirtualnej. Właściwości wymienione w obszarze ustawień są właściwościami publicznymi. Właściwości publiczne nie są szyfrowane w pliku tekstowym ustawień. Właściwości wymienione w obszarze protectedSettings są szyfrowane przy użyciu certyfikatu i nie są wyświetlane w postaci zwykłego tekstu w pliku ustawień na maszynie wirtualnej.
Jeśli konfiguracja wymaga poświadczeń, możesz uwzględnić poświadczenia w obszarze protectedSettings:
"protectedSettings": {
"configurationArguments": {
"parameterOfTypePSCredential1": {
"userName": "UsernameValue1",
"password": "PasswordValue1"
}
}
}
Przykład użycia skryptu konfiguracji w usłudze Azure Storage
Poniższy przykład pochodzi z omówienia obsługi rozszerzeń DSC.
W tym przykładzie użyto szablonów usługi Resource Manager zamiast poleceń cmdlet do wdrożenia rozszerzenia.
Zapisz konfigurację IisInstall.ps1, umieść ją w pliku .zip (na przykład: iisinstall.zip), a następnie przekaż plik w dostępnym adresie URL.
W tym przykładzie użyto usługi Azure Blob Storage, ale możesz pobrać .zip pliki z dowolnej lokalizacji.
W szablonie usługi Resource Manager następujący kod instruuje maszynę wirtualną, aby pobrała prawidłowy plik, a następnie uruchom odpowiednią funkcję programu PowerShell:
"settings": {
"configuration": {
"url": "https://demo.blob.core.windows.net/iisinstall.zip",
"script": "IisInstall.ps1",
"function": "IISInstall"
}
},
"protectedSettings": {
"configurationUrlSasToken": "odLPL/U1p9lvcnp..."
}
Aktualizuj z poprzedniego formatu
Wszystkie ustawienia w poprzednim formacie rozszerzenia (i które mają właściwości publiczne ModulesUrl, ModuleSource, ModuleVersion, ConfigurationFunction, SasToken lub Properties) automatycznie dostosowują się do bieżącego formatu rozszerzenia. Biegają dokładnie tak jak wcześniej.
Poniższy schemat pokazuje, jak wyglądał poprzedni schemat ustawień:
"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"
}
Oto jak poprzedni format dostosowuje się do bieżącego formatu:
| Bieżąca nazwa właściwości | Poprzedni odpowiednik schematu |
|---|---|
| settings.wmfVersion | Ustawienia.WMFVersion |
| settings.configuration.url | Ustawienia.ModulesUrl |
| ustawienia.konfiguracja.skrypt | Pierwsza część ustawień ConfigurationFunction (przed \\) |
| ustawienia.konfiguracja.funkcja | Druga część ustawień.ConfigurationFunction (po \\) |
| ustawienia.konfiguracja.moduł.nazwa | Ustawienia. Źródło modułu |
| ustawienia.konfiguracja.moduł.wersja | Wersja modułu ustawień |
| settings.configurationArguments | Ustawienia. Właściwości |
| settings.configurationData.url | protectedSettings.DataBlobUri (bez tokenu SAS) |
| ustawienia.prywatność.zbieranieDanych | Ustawienia.Prywatność.ZbieranieDanych |
| ustawienia.zaawansowaneOpcje.pobierzMapowania | Ustawienia.ZaawansowaneOpcje.PobieranieMapowań |
| protectedSettings.configurationArguments | protectedSettings.UstawieniaWłaściwości |
| protectedSettings.configurationUrlSasToken | Ustawienia.SasToken |
| protectedSettings.configurationDataUrlSasToken | Token SAS z identyfikatora URI protectedSettings.DataBlobUri |
Rozwiązywanie problemów
Poniżej przedstawiono niektóre błędy, które mogą wystąpić i jak można je naprawić.
Nieprawidłowe wartości
Privacy.dataCollection jest '{0}'. Jedynymi możliwymi wartościami są "", "Włącz" i "Wyłącz". WmfVersion jest '{0}'. Tylko możliwe wartości to ... i "najnowszy".
Problem: Podana wartość nie jest dozwolona.
Rozwiązanie: zmień nieprawidłową wartość na prawidłową wartość.
Nieprawidłowy adres URL
"ConfigurationData.url to '{0}'. To nie jest prawidłowy adres URL" "DataBlobUri to '{0}". To nie jest prawidłowy adres URL" "Configuration.url is '{0}". To nie jest prawidłowy adres URL"
Problem: Podany adres URL jest nieprawidłowy.
Rozwiązanie: Sprawdź wszystkie podane adresy URL. Upewnij się, że wszystkie adresy URL prowadzą do prawidłowych lokalizacji, do których rozszerzenie może uzyskać dostęp na maszynie zdalnej.
Nieprawidłowy typ argumentu konfiguracji
Nieprawidłowy typ konfiguracji {0}Argumentów
Problem: Właściwość ConfigurationArguments nie może zostać rozpoznana jako obiekt tabeli skrótu.
Rozwiązanie: Ustaw właściwość ConfigurationArguments na tabelę skrótów. Postępuj zgodnie z formatem podanym w poprzednich przykładach. Uważaj na cudzysłowy, przecinki i nawiasy klamrowe.
Zduplikowane argumenty konfiguracyjne
"Znaleziono zduplikowane argumenty "{0}" zarówno w konfiguracji publicznej, jak i chronionejArguments"
Problem: ConfigurationArguments w ustawieniach publicznych i ConfigurationArguments w ustawieniach chronionych mają właściwości o tej samej nazwie.
Rozwiązanie: Usuń jedną z zduplikowanych właściwości.
Brakujące właściwości
ustawienia.Configuration.function wymaga, aby określono settings.configuration.url lub settings.configuration.module
"settings.Configuration.url wymaga, aby settings.configuration.script był określony"
Ustawienie settings.Configuration.script wymaga, aby określono settings.configuration.url
"ustawienia. Configuration.url wymaga, aby określono parametr settings.configuration.function"
"protectedSettings.ConfigurationUrlSasToken wymaga, aby settings.configuration.url zostało określone."
"protectedSettings.ConfigurationDataUrlSasToken wymaga określenia ustawienia.configurationData.url"
Problem: Zdefiniowana właściwość wymaga innej właściwości, której brakuje.
Rozwiązania:
- Podaj brakującą właściwość.
- Usuń właściwość, która wymaga brakującej właściwości.
Następne kroki
- Dowiedz się więcej o używaniu zestawów skalowania maszyn wirtualnych z rozszerzeniem DSC platformy Azure.
- Dowiedz się więcej na temat bezpiecznego zarządzania poświadczeniami DSC.
- Zapoznaj się z wprowadzeniem do procedury obsługi rozszerzenia DSC platformy Azure.
- Aby uzyskać więcej informacji na temat rozszerzenia DSC programu PowerShell, przejdź do centrum dokumentacji programu PowerShell.