Włączanie usługi State Configuration w usłudze Azure Automation

Uwaga

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

W tym temacie opisano sposób konfigurowania maszyn do zarządzania przy użyciu usługi Azure Automation State Configuration. Aby uzyskać szczegółowe informacje o tej usłudze, zobacz Omówienie usługi Azure Automation State Configuration.

Włączanie maszyn wirtualnych platformy Azure

Usługa Azure Automation State Configuration umożliwia łatwe włączanie maszyn wirtualnych platformy Azure na potrzeby zarządzania konfiguracją przy użyciu witryny Azure Portal, szablonów usługi Azure Resource Manager lub programu PowerShell. W ramach programu i bez konieczności zdalnego dostępu administratora do maszyny wirtualnej rozszerzenie Konfiguracji żądanego stanu maszyny wirtualnej platformy Azure rejestruje maszynę wirtualną przy użyciu usługi Azure Automation State Configuration. Ponieważ rozszerzenie platformy Azure jest uruchamiane asynchronicznie, kroki śledzenia postępu są dostępne w obszarze Sprawdź stan konfiguracji maszyny wirtualnej.

Uwaga

Wdrażanie rozszerzenia DSC w węźle systemu Linux używa folderu /tmp . Moduły, takie jak nxautomation , są tymczasowo pobierane do weryfikacji przed zainstalowaniem ich w odpowiednich lokalizacjach. Aby upewnić się, że moduły są poprawnie instalowane, agent usługi Log Analytics dla systemu Linux musi mieć uprawnienia do odczytu/zapisu w folderze /tmp .

Agent usługi Log Analytics dla systemu Linux działa jako omsagent użytkownik. Aby udzielić >użytkownikowi omsagent uprawnień do zapisu, uruchom polecenie setfacl -m u:omsagent:rwx /tmp.

Włączanie maszyny wirtualnej przy użyciu witryny Azure Portal

Aby włączyć konfigurację stanu maszyny wirtualnej platformy Azure za pośrednictwem witryny Azure Portal:

  1. Przejdź do konta usługi Azure Automation, w którym chcesz włączyć maszyny wirtualne.

  2. Na stronie Konfiguracja stanu wybierz kartę Węzły , a następnie kliknij przycisk Dodaj.

  3. Wybierz maszynę wirtualną, która ma być włączona.

  4. Jeśli maszyna nie ma zainstalowanego rozszerzenia żądanego stanu programu PowerShell, a stan zasilania jest uruchomiony, kliknij przycisk Połączenie.

  5. W obszarze Rejestracja wprowadź wartości programu PowerShell DSC Local Configuration Manager wymagane dla danego przypadku użycia. Opcjonalnie możesz wprowadzić konfigurację węzła, która ma zostać przypisana do maszyny wirtualnej.

enabling VM

Włączanie maszyny wirtualnej przy użyciu szablonów usługi Azure Resource Manager

Maszynę wirtualną dla usługi State Configuration można zainstalować i włączyć przy użyciu szablonów usługi Azure Resource Manager. Zobacz Serwer zarządzany przez usługę Desired State Configuration, aby zapoznać się z przykładowym szablonem, który umożliwia istniejącą maszynę wirtualną dla usługi State Configuration. Jeśli zarządzasz zestawem skalowania maszyn wirtualnych, zobacz przykładowy szablon konfiguracji zestawu skalowania maszyn wirtualnych zarządzany przez usługę Azure Automation.

Włączanie maszyn przy użyciu programu PowerShell

Aby włączyć maszyny wirtualne dla konfiguracji stanu, możesz użyć polecenia cmdlet Register-AzAutomationDscNode w programie PowerShell.

Uwaga

Polecenie Register-AzAutomationDscNode cmdlet jest obecnie implementowane tylko dla maszyn z systemem Windows, ponieważ wyzwala tylko rozszerzenie systemu Windows.

Rejestrowanie maszyn wirtualnych w subskrypcjach platformy Azure

Najlepszym sposobem rejestrowania maszyn wirtualnych z innych subskrypcji platformy Azure jest użycie rozszerzenia DSC w szablonie wdrożenia usługi Azure Resource Manager. Przykłady znajdują się w rozszerzeniu Desired State Configuration z szablonami usługi Azure Resource Manager.

Rejestrowanie maszyn hybrydowych przy użyciu metakonfiguracji DSC

Maszyny można bezpiecznie włączyć dla konta usługi Azure Automation za pomocą metakonfiguracji DSC. Protokoły zaimplementowane w usłudze DSC używają informacji z metakonfiguracji do uwierzytelniania w usłudze Azure Automation State Configuration. Węzeł rejestruje się w usłudze pod adresem URL rejestracji i uwierzytelnia się przy użyciu klucza rejestracji. Podczas rejestracji węzeł DSC i usługa DSC negocją unikatowy certyfikat dla węzła do użycia do uwierzytelniania na serwerze po rejestracji. Ten proces uniemożliwia podszywaniu się pod inne węzły, na przykład w przypadku naruszenia zabezpieczeń węzła i złośliwego działania. Po rejestracji klucz rejestracji nie jest ponownie używany do uwierzytelniania i jest usuwany z węzła.

Informacje wymagane dla protokołu rejestracji konfiguracji stanu można uzyskać z obszaru Klucze w obszarze Konto Ustawienia w witrynie Azure Portal.

Azure automation keys and URL

  • Adres URL rejestracji to pole adresu URL na stronie Klucze.
  • Klucz rejestracji to wartość pola Podstawowy klucz dostępu lub pole Klucz dostępu pomocniczego na stronie Klucze. Można użyć dowolnego klucza.

W przypadku dodatkowych zabezpieczeń można w dowolnym momencie wygenerować klucze dostępu podstawowego i pomocniczego konta usługi Automation na stronie Klucze. Regeneruj klucz uniemożliwia rejestracje węzłów w przyszłości przy użyciu poprzednich kluczy.

Generowanie metakonfiguracji DSC

Aby włączyć dowolną maszynę dla usługi State Configuration, można wygenerować metakonfigurację DSC. Ta konfiguracja informuje agenta DSC o ściąganiu z i/lub raportowania do usługi Azure Automation State Configuration. Metakonfigurację DSC dla usługi Azure Automation State Configuration można wygenerować przy użyciu konfiguracji DSC programu PowerShell lub poleceń cmdlet programu PowerShell usługi Azure Automation.

Uwaga

Metakonfiguracje DSC zawierają wpisy tajne wymagane do włączenia maszyny na koncie usługi Automation na potrzeby zarządzania. Upewnij się, że należy prawidłowo chronić wszystkie utworzone metakonfiguracje DSC lub usunąć je po użyciu.

Obsługa serwera proxy dla metakonfiguracji jest kontrolowana przez program Local Configuration Manager, który jest aparatem DSC programu Windows PowerShell. Narzędzie LCM jest uruchamiane na wszystkich węzłach docelowych i jest odpowiedzialne za wywoływanie zasobów konfiguracji, które są zawarte w skrypie metakonfiguracji DSC. Obsługę serwera proxy można uwzględnić w metakonfiguracji, uwzględniając definicje właściwości i ProxyCredential zgodnie z potrzebami ProxyURL w ConfigurationRepositoryWebblokach , ResourceRepositoryWebi ReportServerWeb . Przykładem ustawienia adresu URL jest ProxyURL = "http://172.16.3.6:3128";. Właściwość ProxyCredential jest ustawiana na obiekt zgodnie z opisem PSCredential w temacie Zarządzanie poświadczeniami w usłudze Azure Automation.

Generowanie metakonfiguracji DSC przy użyciu konfiguracji DSC

  1. Otwórz program VSCode (lub ulubiony edytor) jako administrator na komputerze w środowisku lokalnym. Na maszynie musi być zainstalowana najnowsza wersja programu WMF 5 .

  2. Skopiuj poniższy skrypt lokalnie. Ten skrypt zawiera konfigurację DSC programu PowerShell do tworzenia metakonfiguracji oraz polecenie umożliwiające rozpoczęcie tworzenia metakonfiguracji.

    Uwaga

    Nazwy konfiguracji węzła konfiguracji stanu są uwzględniane w wielkości liter w witrynie Azure Portal. Jeśli przypadek jest niezgodny, węzeł nie będzie wyświetlany na karcie Węzły .

    # The DSC configuration that will generate metaconfigurations
    [DscLocalConfigurationManager()]
    Configuration DscMetaConfigs
    {
         param
         (
             [Parameter(Mandatory=$True)]
             [String]$RegistrationUrl,
    
             [Parameter(Mandatory=$True)]
             [String]$RegistrationKey,
    
             [Parameter(Mandatory=$True)]
             [String[]]$ComputerName,
    
             [Int]$RefreshFrequencyMins = 30,
    
             [Int]$ConfigurationModeFrequencyMins = 15,
    
             [String]$ConfigurationMode = 'ApplyAndMonitor',
    
             [String]$NodeConfigurationName,
    
             [Boolean]$RebootNodeIfNeeded= $False,
    
             [String]$ActionAfterReboot = 'ContinueConfiguration',
    
             [Boolean]$AllowModuleOverwrite = $False,
    
             [Boolean]$ReportOnly
         )
    
         if(!$NodeConfigurationName -or $NodeConfigurationName -eq '')
         {
             $ConfigurationNames = $null
         }
         else
         {
             $ConfigurationNames = @($NodeConfigurationName)
         }
    
         if($ReportOnly)
         {
             $RefreshMode = 'PUSH'
         }
         else
         {
             $RefreshMode = 'PULL'
         }
    
         Node $ComputerName
         {
             Settings
             {
                 RefreshFrequencyMins           = $RefreshFrequencyMins
                 RefreshMode                    = $RefreshMode
                 ConfigurationMode              = $ConfigurationMode
                 AllowModuleOverwrite           = $AllowModuleOverwrite
                 RebootNodeIfNeeded             = $RebootNodeIfNeeded
                 ActionAfterReboot              = $ActionAfterReboot
                 ConfigurationModeFrequencyMins = $ConfigurationModeFrequencyMins
             }
    
             if(!$ReportOnly)
             {
             ConfigurationRepositoryWeb AzureAutomationStateConfiguration
                 {
                     ServerUrl          = $RegistrationUrl
                     RegistrationKey    = $RegistrationKey
                     ConfigurationNames = $ConfigurationNames
                 }
    
                 ResourceRepositoryWeb AzureAutomationStateConfiguration
                 {
                     ServerUrl       = $RegistrationUrl
                     RegistrationKey = $RegistrationKey
                 }
             }
    
             ReportServerWeb AzureAutomationStateConfiguration
             {
                 ServerUrl       = $RegistrationUrl
                 RegistrationKey = $RegistrationKey
             }
         }
    }
    
     # Create the metaconfigurations
     # NOTE: DSC Node Configuration names are case sensitive in the portal.
     # TODO: edit the below as needed for your use case
    $Params = @{
         RegistrationUrl = '<fill me in>';
         RegistrationKey = '<fill me in>';
         ComputerName = @('<some VM to onboard>', '<some other VM to onboard>');
         NodeConfigurationName = 'SimpleConfig.webserver';
         RefreshFrequencyMins = 30;
         ConfigurationModeFrequencyMins = 15;
         RebootNodeIfNeeded = $False;
         AllowModuleOverwrite = $False;
         ConfigurationMode = 'ApplyAndMonitor';
         ActionAfterReboot = 'ContinueConfiguration';
         ReportOnly = $False;  # Set to $True to have machines only report to AA DSC but not pull from it
    }
    
    # Use PowerShell splatting to pass parameters to the DSC configuration being invoked
    # For more info about splatting, run: Get-Help -Name about_Splatting
    DscMetaConfigs @Params
    
  3. Wypełnij klucz rejestracji i adres URL konta usługi Automation, a także nazwy maszyn do włączenia. Wszystkie inne parametry są opcjonalne. Aby znaleźć klucz rejestracji i adres URL rejestracji dla konta usługi Automation, zobacz Używanie metakonfiguracji DSC do rejestrowania maszyn hybrydowych.

  4. Jeśli chcesz, aby maszyny zgłaszały informacje o stanie rozszerzenia DSC do usługi Azure Automation State Configuration, ale nie ściągały konfiguracji lub modułów programu PowerShell, ustaw ReportOnly parametr na true.

  5. Jeśli ReportOnly nie jest ustawiona, maszyny zgłaszają informacje o stanie rozszerzenia DSC do usługi Azure Automation State Configuration i ściągania konfiguracji lub modułów programu PowerShell. Ustaw odpowiednio parametry w blokach ConfigurationRepositoryWeb, ResourceRepositoryWebi ReportServerWeb .

  6. Uruchom skrypt. Teraz powinien istnieć folder katalogu roboczego o nazwie DscMetaConfigs zawierający metakonfiguracje DSC programu PowerShell dla maszyn do włączenia (jako administrator).

    Set-DscLocalConfigurationManager -Path ./DscMetaConfigs
    

Generowanie metakonfiguracji DSC przy użyciu poleceń cmdlet usługi Azure Automation

Jeśli ustawienia domyślne LCM rozszerzenia DSC programu PowerShell są zgodne z twoim przypadkiem użycia i chcesz umożliwić maszynom ściąganie z usługi Azure Automation i raportowanie do usługi Azure Automation State Configuration, możesz wygenerować potrzebne metakonfiguracje DSC bardziej po prostu przy użyciu poleceń cmdlet usługi Azure Automation.

  1. Otwórz konsolę programu PowerShell lub program VSCode jako administrator na komputerze w środowisku lokalnym.

  2. Połączenie do usługi Azure Resource Manager przy użyciu polecenia Połączenie-AzAccount.

  3. Pobierz metakonfiguracje DSC programu PowerShell dla maszyn, które chcesz włączyć z konta usługi Automation, w którym konfigurujesz węzły.

    # Define the parameters for Get-AzAutomationDscOnboardingMetaconfig using PowerShell Splatting
    $Params = @{
        ResourceGroupName = 'ContosoResources'; # The name of the Resource Group that contains your Azure Automation account
        AutomationAccountName = 'ContosoAutomation'; # The name of the Azure Automation account where you want a node on-boarded to
        ComputerName = @('web01', 'web02', 'sql01'); # The names of the computers that the metaconfiguration will be generated for
        OutputFolder = "$env:UserProfile\Desktop\";
    }
    # Use PowerShell splatting to pass parameters to the Azure Automation cmdlet being invoked
    # For more info about splatting, run: Get-Help -Name about_Splatting
    Get-AzAutomationDscOnboardingMetaconfig @Params
    
  4. Teraz powinien istnieć folder DscMetaConfigs zawierający metakonfiguracje DSC programu PowerShell dla maszyn do włączenia (jako administrator).

    Set-DscLocalConfigurationManager -Path $env:UserProfile\Desktop\DscMetaConfigs
    

Włączanie fizycznych/wirtualnych maszyn z systemem Windows

Serwery z systemem Windows działające lokalnie lub w innych środowiskach chmury (w tym wystąpienia usługi AWS EC2) można włączyć w usłudze Azure Automation State Configuration. Serwery muszą mieć dostęp wychodzący do platformy Azure.

  1. Upewnij się, że na maszynach jest zainstalowana najnowsza wersja programu WMF 5 , aby włączyć usługę State Configuration. Ponadto program WMF 5 musi być zainstalowany na komputerze używanym do włączania maszyn.

  2. Postępuj zgodnie z instrukcjami w temacie Generowanie metakonfiguracji DSC, aby utworzyć folder zawierający wymagane metakonfiguracje DSC.

  3. Użyj następującego polecenia cmdlet, aby zdalnie zastosować metakonfiguracje DSC programu PowerShell do maszyn w celu włączenia.

    Set-DscLocalConfigurationManager -Path C:\Users\joe\Desktop\DscMetaConfigs -ComputerName MyServer1, MyServer2
    
  4. Jeśli nie możesz zdalnie zastosować metakonfiguracji DSC programu PowerShell, skopiuj folder metakonfiguracji do komputerów , które są włączane. Następnie dodaj kod w celu wywołania polecenia Set-DscLocalConfigurationManager lokalnie na maszynach.

  5. Korzystając z witryny Azure Portal lub poleceń cmdlet, sprawdź, czy maszyny są wyświetlane jako węzły konfiguracji stanu zarejestrowane na koncie usługi Azure Automation.

Włączanie maszyn fizycznych/wirtualnych z systemem Linux

Można włączyć serwery z systemem Linux działające lokalnie lub w innych środowiskach w chmurze dla usługi State Configuration. Serwery muszą mieć dostęp wychodzący do platformy Azure.

  1. Upewnij się, że na maszynach jest zainstalowana najnowsza wersja konfiguracji żądanego stanu programu PowerShell dla systemu Linux , aby włączyć usługę State Configuration.

  2. Jeśli ustawienia domyślne lokalnego programu Configuration Manager programu PowerShell są zgodne z twoim przypadkiem użycia, i chcesz włączyć maszyny, aby ściągały z i zgłaszały konfigurację stanu:

    • Na każdej maszynie z systemem Linux do włączenia użyj Register.py polecenia , aby włączyć maszynę z ustawieniami domyślnymi programu PowerShell DSC Local Configuration Manager.

      /opt/microsoft/dsc/Scripts/Register.py <Automation account registration key> <Automation account registration URL>

    • Aby znaleźć klucz rejestracji i adres URL rejestracji dla konta usługi Automation, zobacz Używanie metakonfiguracji DSC do rejestrowania maszyn hybrydowych.

  3. Jeśli ustawienia domyślne programu PowerShell DSC Local Configuration Manager (LCM) nie są zgodne z twoim przypadkiem użycia lub chcesz włączyć maszyny, które raportują tylko do usługi Azure Automation State Configuration, wykonaj kroki 4–7. W przeciwnym razie przejdź bezpośrednio do kroku 7.

  4. Postępuj zgodnie z instrukcjami w sekcji Generowanie metakonfiguracji DSC, aby utworzyć folder zawierający wymagane metakonfiguracje DSC.

  5. Upewnij się, że najnowsza wersja programu WMF 5 jest zainstalowana na komputerze używanym do włączania maszyn w usłudze State Configuration.

  6. Dodaj kod w następujący sposób, aby zdalnie zastosować metakonfiguracje DSC programu PowerShell do maszyn w celu włączenia.

    $SecurePass = ConvertTo-SecureString -String '<root password>' -AsPlainText -Force
    $Cred = New-Object System.Management.Automation.PSCredential 'root', $SecurePass
    $Opt = New-CimSessionOption -UseSsl -SkipCACheck -SkipCNCheck -SkipRevocationCheck
    
    # need a CimSession for each Linux machine to onboard
    $Session = New-CimSession -Credential $Cred -ComputerName <your Linux machine> -Port 5986 -Authentication basic -SessionOption $Opt
    
    Set-DscLocalConfigurationManager -CimSession $Session -Path C:\Users\joe\Desktop\DscMetaConfigs
    
  7. Jeśli nie możesz zdalnie zastosować metakonfiguracji DSC programu PowerShell, skopiuj metakonfiguracje odpowiadające maszynom zdalnym z folderu opisanego w kroku 4 do maszyn z systemem Linux.

  8. Dodaj kod, aby wywołać Set-DscLocalConfigurationManager.py lokalnie na każdej maszynie z systemem Linux, aby włączyć usługę State Configuration.

    /opt/microsoft/dsc/Scripts/SetDscLocalConfigurationManager.py -configurationmof <path to metaconfiguration file>

  9. Korzystając z witryny Azure Portal lub poleceń cmdlet, upewnij się, że maszyny do włączenia są teraz wyświetlane jako węzły DSC zarejestrowane na koncie usługi Azure Automation.

Ponowne rejestrowanie węzła

Po zarejestrowaniu maszyny jako węzła DSC w usłudze Azure Automation State Configuration może być konieczne ponowne zarejestrowanie tego węzła w przyszłości.

  • Odnawianie certyfikatu. W przypadku wersji systemu Windows Server przed systemem Windows Server 2019 każdy węzeł automatycznie negocjuje unikatowy certyfikat uwierzytelniania wygasający po roku. Jeśli certyfikat wygaśnie bez odnowienia, węzeł nie może komunikować się z usługą Azure Automation i jest oznaczony jako Unresponsive. Obecnie protokół rejestracji DSC programu PowerShell nie może automatycznie odnawiać certyfikatów, gdy zbliżają się one do wygaśnięcia, i należy ponownie zarejestrować węzły po upływie roku. Przed ponownym zarejestrowaniem upewnij się, że każdy węzeł jest uruchomiony w programie WMF 5 RTM.

    Ponowna rejestracja wykonana 90 dni lub mniej z czasu wygaśnięcia certyfikatu lub w dowolnym momencie po wygaśnięciu certyfikatu powoduje wygenerowanie i zastosowanie nowego certyfikatu. Rozwiązanie tego problemu jest zawarte w systemie Windows Server 2019 lub nowszym.

  • Zmiany w wartościach LCM DSC. Może być konieczne zmiana wartości LCM LCM programu PowerShell dla programu PowerShell podczas początkowej rejestracji węzła, na przykład ConfigurationMode. Obecnie można zmienić tylko te wartości agenta DSC za pomocą ponownej rejestracji. Jednym wyjątkiem jest wartość Konfiguracja węzła przypisana do węzła. Możesz to zmienić bezpośrednio w usłudze Azure Automation DSC.

Możesz ponownie zarejestrować węzeł tak samo, jak początkowo zarejestrowano węzeł, przy użyciu dowolnej z metod opisanych w tym dokumencie. Przed ponownym zarejestrowaniem węzła z usługi Azure Automation State Configuration nie trzeba wyrejestrować węzła.

Sprawdzanie stanu konfiguracji maszyny wirtualnej

Konfiguracja stanu umożliwia łatwe włączanie maszyn wirtualnych platformy Azure z systemem Windows na potrzeby zarządzania konfiguracją. Pod maską rozszerzenie Konfiguracji żądanego stanu maszyny wirtualnej platformy Azure służy do rejestrowania maszyny wirtualnej w usłudze Azure Automation State Configuration. Ponieważ rozszerzenie Konfiguracji żądanego stanu maszyny wirtualnej platformy Azure jest uruchamiane asynchronicznie, śledzenie postępu i rozwiązywanie problemów z jego wykonywaniem może być ważne.

Uwaga

Każda metoda włączania maszyn wirtualnych platformy Azure z systemem Windows dla konfiguracji stanu korzystającej z rozszerzenia Konfiguracji żądanego stanu maszyny wirtualnej platformy Azure może potrwać do godziny, aby usługa Azure Automation wyświetlała maszyny wirtualne jako zarejestrowane. To opóźnienie jest spowodowane instalacją programu WMF 5 na maszynie wirtualnej przez rozszerzenie konfiguracji żądanego stanu maszyny wirtualnej platformy Azure, które jest wymagane do włączenia maszyn wirtualnych dla konfiguracji stanu.

Aby wyświetlić stan rozszerzenia konfiguracji żądanego stanu maszyny wirtualnej platformy Azure:

  1. W witrynie Azure Portal przejdź do włączonej maszyny wirtualnej.
  2. Kliknij pozycję Rozszerzenia w obszarze Ustawienia.
  3. Teraz wybierz pozycję DSC lub DSCForLinux w zależności od systemu operacyjnego.
  4. Aby uzyskać więcej informacji, możesz kliknąć pozycję Wyświetl szczegółowy stan.

Następne kroki