Udostępnij za pośrednictwem


Rozszerzenie DSC programu PowerShell

Uwaga

Przed włączeniem rozszerzenia DSC chcielibyśmy wiedzieć, że nowsza wersja dsC jest teraz ogólnie dostępna, zarządzana przez funkcję usługi Azure Automange o nazwie konfiguracja maszyny. Funkcja konfiguracji maszyny łączy funkcje obsługi rozszerzeń Desired State Configuration (DSC), Azure Automation State Configuration i najczęściej żądanych funkcji z opinii klientów. Konfiguracja maszyny obejmuje również obsługę maszyny hybrydowej 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 ona przechowywana 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

Nazwa Wartość / przykład Typ danych
apiVersion 2018-10-01 data
publisher Microsoft.Powershell.DSC ciąg
typ DSC ciąg
typeHandlerVersion 2.77 int

Ustawienia Wartości właściwości

Nazwa Typ danych Opis
settings.wmfVersion ciąg 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 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 ciąg 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/lub settings.configuration.function.
settings.configuration.script ciąg 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 parametr settings.configuration.url i/lub settings.configuration.script.
settings.configuration.function ciąg Określa nazwę konfiguracji DSC. Konfiguracja o nazwie musi być zawarta 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 wszystkie parametry, które chcesz przekazać do konfiguracji DSC. Ta właściwość nie zostanie zaszyfrowana.
settings.configurationData.url ciąg 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 ciąg 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 Wartość logiczna To ustawienie zostało zaprojektowane tak, aby usprawnić pracę z rozszerzeniem w celu rejestrowania węzłów za pomocą 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 z Azure Automation State Configuration pomyślnie, a konfiguracja węzła nie zostanie uruchomiona podczas rejestracji.
settings.advancedOptions.downloadMappings Kolekcja Definiuje lokalizacje alternatywne do pobierania zależności, takich jak WMF i .NET

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

Nazwa Typ danych Opis
protectedSettings.configurationArguments ciąg Definiuje wszystkie parametry, które chcesz przekazać do konfiguracji DSC. Ta właściwość zostanie zaszyfrowana.
protectedSettings.configurationUrlSasToken ciąg Określa token sygnatury dostępu współdzielonego, aby uzyskać dostęp do adresu URL zdefiniowanego przez adres url configuration.url. Ta właściwość zostanie zaszyfrowana.
protectedSettings.configurationDataUrlSasToken ciąg Określa token sygnatury dostępu współdzielonego, aby uzyskać dostęp do adresu URL zdefiniowanego przez parametr 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 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żliwa akcja
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 platformy 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żna 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 platformy Microsoft pomoc techniczna platformy Azure.