Udostępnij za pośrednictwem


Rozszerzenie DSC programu PowerShell

Uwaga

Przed włączeniem rozszerzenia DSC chcielibyśmy wiedzieć, że nowsza wersja rozszerzenia DSC jest teraz ogólnie dostępna, zarządzana przez funkcję konfiguracji maszyny o nazwie Azure Automange. Funkcja konfiguracji maszyny łączy funkcje programu obsługi rozszerzenia Desired State Configuration (DSC), usługi Azure Automation State Configuration i najczęściej żądanych funkcji z opinii klientów. Konfiguracja maszyny obejmuje również obsługę maszyn hybrydowych za pośrednictwem serwerów z obsługą usługi Arc.

Omówienie

Rozszerzenie DSC programu PowerShell dla systemu Windows jest publikowane i obsługiwane przez firmę Microsoft. Rozszerzenie przekazuje i stosuje konfigurację DSC programu PowerShell na maszynie wirtualnej platformy Azure. Rozszerzenie DSC wywołuje rozszerzenie DSC programu PowerShell, aby wprowadzić odebraną konfigurację DSC na maszynie wirtualnej. Ten dokument zawiera szczegółowe informacje o obsługiwanych platformach, konfiguracjach i opcjach wdrażania rozszerzenia maszyny wirtualnej DSC dla systemu Windows.

Wymagania wstępne

System operacyjny

Rozszerzenie DSC obsługuje następujące systemy operacyjne

Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows Server 2012R2, Windows Server 2012, Windows Server 2008 R2 SP1, Windows Client 7/8.1/10

Łączność z Internetem

Rozszerzenie DSC dla systemu Windows wymaga, aby docelowa maszyna wirtualna mogła komunikować się z platformą Azure i lokalizacją pakietu konfiguracji (.zip pliku), jeśli jest on przechowywany w lokalizacji spoza platformy Azure.

Schemat rozszerzenia

Poniższy kod JSON przedstawia schemat części ustawień rozszerzenia DSC w szablonie usługi Azure Resource Manager.

{
  "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"
    }
  }
}

Wartości właściwości

Nazwisko Wartość / przykład Typ danych
apiVersion 2018-10-01 data
wydawca Microsoft.Powershell.DSC string
type DSC string
typeHandlerVersion 2.77 int

Ustawienia Wartości właściwości

Nazwisko Typ danych opis
settings.wmfVersion string Określa wersję programu Windows Management Framework, która powinna być zainstalowana na maszynie wirtualnej. Ustawienie tej właściwości na wartość "latest" spowoduje zainstalowanie najbardziej zaktualizowanej wersji programu WMF. Jedyne możliwe wartości dla tej właściwości to "4.0", "5.0" i "latest". Te możliwe wartości podlegają aktualizacjom. Wartość domyślna to "latest".
settings.configuration.url string Określa lokalizację adresu URL, z której chcesz pobrać plik zip konfiguracji DSC. Jeśli podany adres URL wymaga tokenu SAS na potrzeby dostępu, należy ustawić właściwość protectedSettings.configurationUrlSasToken na wartość tokenu SAS. Ta właściwość jest wymagana, jeśli zdefiniowano parametr settings.configuration.script i/or settings.configuration.function.
settings.configuration.script string Określa nazwę pliku skryptu, który zawiera definicję konfiguracji DSC. Ten skrypt musi znajdować się w folderze głównym pliku zip pobranego z adresu URL określonego przez właściwość configuration.url. Ta właściwość jest wymagana, jeśli zdefiniowano ustawienia.configuration.url i/lub settings.configuration.script.
settings.configuration.function string Określa nazwę konfiguracji DSC. Konfiguracja o nazwie musi znajdować się w skrycie zdefiniowanym przez plik configuration.script. Ta właściwość jest wymagana, jeśli zdefiniowano ustawienia.configuration.url i/lub settings.configuration.function.
settings.configurationArguments Kolekcja Definiuje wszelkie parametry, które chcesz przekazać do konfiguracji DSC. Ta właściwość nie zostanie zaszyfrowana.
settings.configurationData.url string Określa adres URL, z którego ma być pobierany plik danych konfiguracji (pds1), który ma być używany jako dane wejściowe dla konfiguracji DSC. Jeśli podany adres URL wymaga tokenu SAS na potrzeby dostępu, należy ustawić właściwość protectedSettings.configurationDataUrlSasToken na wartość tokenu SAS.
settings.privacy.dataEnabled string Włącza lub wyłącza zbieranie danych telemetrycznych. Jedynymi możliwymi wartościami tej właściwości są "Enable", "Disable", "lub $null. Pozostawienie tej właściwości pustej lub null spowoduje włączenie telemetrii
settings.advancedOptions.forcePullAndApply Bool To ustawienie zostało zaprojektowane w celu ulepszenia środowiska pracy z rozszerzeniem w celu rejestrowania węzłów w usłudze Azure Automation DSC. Jeśli wartość to $true, rozszerzenie będzie czekać na pierwsze uruchomienie konfiguracji pobranej z usługi przed zwróceniem powodzenia/niepowodzenia. Jeśli wartość jest ustawiona na $false, stan zwrócony przez rozszerzenie będzie odnosić się tylko do tego, czy węzeł został zarejestrowany w usłudze Azure Automation State Configuration, a konfiguracja węzła nie zostanie uruchomiona podczas rejestracji.
settings.advancedOptions.downloadMappings Kolekcja Definiuje alternatywne lokalizacje do pobierania zależności, takich jak WMF i .NET

Wartości właściwości ustawień chronionych

Nazwisko Typ danych opis
protectedSettings.configurationArguments string Definiuje wszelkie parametry, które chcesz przekazać do konfiguracji DSC. Ta właściwość zostanie zaszyfrowana.
protectedSettings.configurationUrlSasToken string Określa token SAS, aby uzyskać dostęp do adresu URL zdefiniowanego przez adres configuration.url. Ta właściwość zostanie zaszyfrowana.
protectedSettings.configurationDataUrlSasToken string Określa token SAS, aby uzyskać dostęp do adresu URL zdefiniowanego przez configurationData.url. Ta właściwość zostanie zaszyfrowana.

Wdrażanie na podstawie szablonu

Rozszerzenia maszyn wirtualnych platformy Azure można wdrażać za pomocą szablonów usługi Azure Resource Manager. Szablony są idealne podczas wdrażania co najmniej jednej maszyny wirtualnej wymagającej konfiguracji po wdrożeniu. Przykładowy szablon usługi Resource Manager zawierający rozszerzenie DSC dla systemu Windows można znaleźć w galerii Szybki start platformy Azure.

Rozwiązywanie problemów i pomoc techniczna

Rozwiązywanie problemów

Dane dotyczące stanu wdrożeń rozszerzeń można pobrać z witryny Azure Portal i przy użyciu interfejsu wiersza polecenia platformy Azure. Aby wyświetlić stan wdrożenia rozszerzeń dla danej maszyny wirtualnej, uruchom następujące polecenie przy użyciu interfejsu wiersza polecenia platformy Azure.

az vm extension list --resource-group myResourceGroup --vm-name myVM -o table

Pakiet rozszerzenia jest pobierany i wdrażany w tej lokalizacji na maszynie wirtualnej platformy Azure

C:\Packages\Plugins\{Extension_Name}\{Extension_Version}

Plik stanu rozszerzenia zawiera kody powodzenia/błędu podstanu i stanu wraz ze szczegółowymi informacjami o błędzie i opisem każdego uruchomienia rozszerzenia.

C:\Packages\Plugins\{Extension_Name}\{Extension_Version}\Status\{0}.Status  -> {0} being the sequence number

Dzienniki wyjściowe rozszerzenia są rejestrowane w następującym katalogu:

C:\WindowsAzure\Logs\Plugins\{Extension_Name}\{Extension_Version}

Kody błędów i ich znaczenie

Kod błędu Znaczenie Możliwe działanie
1000 Błąd ogólny Komunikat o tym błędzie jest dostarczany przez określony wyjątek w dziennikach rozszerzeń
52 Błąd instalacji rozszerzenia Komunikat o tym błędzie jest dostarczany przez określony wyjątek
1002 Błąd instalacji programu Wmf Błąd podczas instalowania programu WMF.
1004 Nieprawidłowy pakiet zip Nieprawidłowy plik zip ; Błąd podczas rozpakowywania pliku zip
1100 Błąd argumentu Wskazuje problem w danych wejściowych dostarczonych przez użytkownika. Komunikat o błędzie jest dostarczany przez określony wyjątek

Pomoc techniczna

Jeśli potrzebujesz więcej pomocy w dowolnym momencie tego artykułu, możesz skontaktować się z ekspertami platformy Azure na forach MSDN Azure i Stack Overflow. Alternatywnie możesz zgłosić zdarzenie pomoc techniczna platformy Azure. Przejdź do witryny pomoc techniczna platformy Azure i wybierz pozycję Uzyskaj pomoc techniczną. Aby uzyskać informacje na temat korzystania z pomocy technicznej platformy Azure, zapoznaj się z często zadawanymi pytaniami dotyczącymi usługi Microsoft pomoc techniczna platformy Azure.