Czym jest usługa Azure Automation State Configuration?

Ukończone

Możesz użyć usługi Azure Automation State Configuration, aby upewnić się, że maszyny wirtualne w obszarze klastra są w stanie spójnym z zainstalowanym tym samym oprogramowaniem i tymi samymi konfiguracjami.

W tej lekcji poznasz funkcje i możliwości usługi Azure Automation, zapoznasz się z deklaratywnym modelem konfiguracji żądanego stanu programu PowerShell (DSC) i zapoznasz się z jej korzyściami.

Azure Automation State Configuration to usługa platformy Azure oparta na programie PowerShell. Umożliwia spójne wdrażanie, niezawodne monitorowanie i automatyczne aktualizowanie żądanego stanu wszystkich zasobów. Usługa Azure Automation udostępnia narzędzia do definiowania konfiguracji oraz stosowania ich do maszyn rzeczywistych i wirtualnych.

Dlaczego warto używać usługi Azure Automation State Configuration?

Ręczne utrzymywanie prawidłowej i spójnej konfiguracji dla serwerów, na których są uruchamiane usługi, może być trudne i podatne na błędy. Usługa Azure Automation State Configuration używa rozszerzenia DSC programu PowerShell, aby rozwiązać te problemy. Centralnie zarządza artefaktami DSC i procesem DSC.

Usługa Azure Automation State Configuration ma wbudowany serwer ściągania. Węzły mogą automatycznie odbierać konfiguracje z tego serwera ściągania, dostosowywać się do żądanego stanu i zgłaszać swoją zgodność. Docelowymi maszynami mogą być wirtualne lub fizyczne maszyny z systemem Windows bądź Linux znajdujące się w chmurze lub w środowisku lokalnym.

Dzienniki usługi Azure Monitor umożliwiają przeglądanie zgodności węzłów przez skonfigurowanie usługi Azure Automation State Configuration w celu wysłania tych danych.

Co to jest rozszerzenie DSC programu PowerShell?

Rozszerzenie DSC programu PowerShell to deklaratywna platforma zarządzania używana przez usługę Azure Automation State Configuration do konfigurowania i wdrażania systemów oraz sterowania nimi. Deklaratywny język programowania oddziela intencję (co chcesz zrobić) od wykonania (jak chcesz to zrobić). Wystarczy określić żądany stan i pozwolić rozszerzeniu DSC wykonać resztę pracy. Gdy jest dostępny zasób DSC, nie musisz wiedzieć, w jaki sposób należy zaimplementować lub wdrożyć funkcję. Zamiast tego możesz skoncentrować się na strukturze wdrażania.

Jeśli korzystasz już z programu PowerShell, możesz zastanawiać się, dlaczego potrzebujesz rozszerzenia DSC. Rozważmy następujący przykład.

Kiedy chcesz utworzyć udział na serwerze z systemem Windows, możesz użyć tego polecenia programu PowerShell:

# Create a file share
New-SmbShare -Name MyFileShare -Path C:\Shared -FullAccess User1 -ReadAccess User2

Ten skrypt jest prosty i łatwy do zrozumienia. Jeśli jednak używasz tego skryptu w środowisku produkcyjnym, napotkasz kilka problemów. Zastanów się, co może się zdarzyć, jeśli skrypt jest uruchamiany wiele razy lub jeśli User2 ma już pełny dostęp, a nie tylko do odczytu.

Ta metoda nie jest idempotentna. Idempotentność cechuje operację, która wywiera taki sam skutek, niezależnie od tego, czy jest uruchamiana raz, czy 10 001 razy. Aby osiągnąć idempotentność w programie PowerShell, należałoby dodać logikę i obsługę błędów. Jeśli udział plików nie istnieje, należy go utworzyć. Jeśli udział już istnieje, nie ma potrzeby tworzenia go. Jeśli użytkownik User2 już istnieje, ale nie ma dostępu do odczytu, należy dodać dostęp do odczytu.

Skrypt programu PowerShell będzie wyglądać podobnie do poniższego:

$shareExists = $false
$smbShare = Get-SmbShare -Name $Name -ErrorAction SilentlyContinue
if($smbShare -ne $null)
{
    Write-Verbose -Message "Share with name $Name exists"
    $shareExists = $true
}

if ($shareExists -eq $false)
{
    Write-Verbose "Creating share $Name to ensure it is Present"
    New-SmbShare @psboundparameters
}
else
{
    # Need to call either Set-SmbShare or *ShareAccess cmdlets
    if ($psboundparameters.ContainsKey("ChangeAccess"))
    {
       #...etc., etc., etc
    }
}

Inne specjalne przypadki, które nie zostały rozważone, mogą ujawnić się tylko wtedy, gdy wystąpią problemy. Rozszerzenie DSC automatycznie obsługuje nieoczekiwane przypadki. Podczas korzystania z rozszerzenia DSC opisywany jest raczej wynik, a nie proces prowadzący do osiągnięcia tego wyniku.

Poniżej przedstawiono przykładowy fragment kodu DSC:

Configuration Create_Share
{
   Import-DscResource -Module xSmbShare
   # A node describes the VM to be configured

   Node $NodeName
   {
      # A node definition contains one or more resource blocks
      # A resource block describes the resource to be configured on the node
      xSmbShare MySMBShare
      {
          Ensure      = "Present"
          Name        = "MyFileShare"
          Path        = "C:\Shared"
          ReadAccess  = "User1"
          FullAccess  = "User2"
          Description = "This is an updated description for this share"
      }
   }
}

W poprzednim przykładzie użyto modułu xSmbShare , który informuje DSC , jak sprawdzić stan udziału plików. Zestaw DSC Resource Kit zawiera więcej niż 100 modułów zasobów, w tym jeden do instalowania lokacji usług IIS. Na końcu tego modułu znajduje się link do zestawu DSC Resource Kit.

Więcej informacji na temat struktury kodu DSC programu PowerShell znajdziesz w następnej lekcji.

Co to jest LCM?

Lokalny menedżer konfiguracji (LCM) jest składnikiem programu Windows Management Framework (WMF) w systemie operacyjnym Windows. Narzędzie LCM jest odpowiedzialne za aktualizowanie stanu węzła, na przykład maszyny wirtualnej, w celu jego dopasowania do żądanego stanu. Podczas każdego uruchomienia narzędzie LCM wykonuje następujące działania:

  1. Pobierz: pobiera bieżący stan węzła.
  2. Test: porównuje bieżący stan węzła z żądanym stanem przy użyciu skompilowanego skryptu DSC (plik mof).
  3. Ustaw: Aktualizacje węzła tak, aby był zgodny z żądanym stanem opisanym w pliku mof.

Podczas rejestrowania maszyny wirtualnej w usłudze Azure Automation skonfigurujesz narzędzie LCM.

Architektura wypychania i ściągania w usłudze DSC

Narzędzie LCM w każdym węźle może działać w dwóch trybach.

  • Tryb wypychania: administrator ręcznie wysyła lub wypycha konfiguracje do co najmniej jednego węzła. Narzędzie LCM zapewnia, że stan w każdym węźle jest zgodny ze stanem określonym w konfiguracji.

    Diagram przedstawiający architekturę wypychania w usłudze DSC.

  • Tryb ściągania: serwer ściągania przechowuje informacje o konfiguracji. Narzędzie LCM w każdym węźle sonduje serwer ściągania w regularnych odstępach czasu — domyślnie co 15 minut — aby uzyskać najnowsze szczegóły konfiguracji. Te żądania są oznaczone jako krok 1 na poniższym diagramie. W kroku 2 serwer ściągania wysyła szczegółowe informacje o wszelkich zmianach konfiguracji z powrotem do każdego węzła.

    W trybie ściągania każdy węzeł musi być zarejestrowany w usłudze ściągania.

    Diagram przedstawiający architekturę ściągania w usłudze DSC.

Oba tryby mają swoje zalety:

  • Tryb wypychania jest łatwy do skonfigurowania. Nie potrzebuje własnej dedykowanej infrastruktury i może działać na laptopie. Tryb wypychania jest przydatny do testowania funkcji rozszerzenia DSC. Korzystając z trybu wypychania, można również skonfigurować nową maszynę utworzoną na podstawie obrazu do żądanego bazowego stanu.
  • Tryb ściągania jest przydatny w przypadku wdrożenia w przedsiębiorstwie, które obejmuje dużą liczbę maszyn. Narzędzie LCM regularnie sonduje serwer ściągania i sprawdza, czy węzły są w żądanym stanie. Jeśli zewnętrzne narzędzie lub zespół zastosuje poprawki, które spowodują dryfowanie konfiguracji na poszczególnych maszynach, te maszyny zostaną szybko przywrócone do stanu zgodnego z ustawioną wcześniej konfiguracją. Ten proces może ułatwić osiągnięcie stanu ciągłej zgodności ze zobowiązaniami dotyczącymi zabezpieczeń i przepisów.

Obsługiwane platformy i systemy operacyjne

Usługa Azure Automation DSC jest obsługiwana przez usługi Azure Cloud Services, usługi w chmurze innych dostawców oraz infrastrukturę lokalną lub przez rozwiązanie hybrydowe obejmujące wszystkie te środowiska.

Usługa Azure Automation DSC obsługuje następujące systemy operacyjne:

  • Windows:
    • Serwer 2022
    • Server 2019
    • Server 2016
    • Server 2012 R2
    • Server 2012
    • Server 2008 R2 SP1
    • 11
    • 10
    • 8.1
    • 7
  • Linux
    • Rozszerzenie DSC dla systemu Linux obsługuje wszystkie dystrybucje systemu Linux wymienione w dokumentacji dsc programu PowerShell.

Rozszerzenie DSC programu PowerShell jest instalowane na wszystkich maszynach z systemem Linux, które obsługuje rozszerzenie DSC usługi Azure Automation.

Wymagania rozszerzenia DSC dotyczące systemu Windows

W przypadku maszyn z systemem Windows rozszerzenie maszyny wirtualnej Azure Desired State Configuration (DSC) używa programu WMF do zarządzania wersjami funkcji systemu Windows, takimi jak DSC środowiska Windows PowerShell i zdalne zarządzanie systemem Windows (WinRM). Usługa Azure DSC obsługuje program WMF 4.0 lub nowszy, dlatego na maszynach z systemem Windows musi działać system Windows Server 2008 R2 z dodatkiem SP1, Windows 7 lub nowszym.

Przy pierwszym wywołaniu rozszerzenia DSC platformy Azure instaluje ono platformę WMF w wersji zgodnej z systemem operacyjnym we wszystkich wersjach systemu Windows z wyjątkiem systemu Windows Server 2016 i nowszych. W systemie Windows Server 2016 i nowszych jest już zainstalowana najnowsza wersja platformy WMF. Po zainstalowaniu platformy WMF maszyna wymaga ponownego uruchomienia.

Usługa WinRM jest włączona w węzłach maszyny z systemem Windows Server 2012 lub nowszym oraz Windows 7 lub nowszym.

Obsługa serwera proxy dla agenta DSC jest dostępna w kompilacji 1809 i nowszych systemu Windows. We wcześniejszych wersjach systemu Windows obsługa serwera proxy dla rozszerzenia DSC jest niedostępna.

Inne wymagania rozszerzenia DSC

Jeśli Twoje węzły znajdują się w sieci prywatnej, do komunikowania się z usługą Azure Automation rozszerzenie DSC wymaga następującego portu i adresów URL:

  • Port: wymagany jest tylko protokół TCP 443 dla wychodzącego dostępu do Internetu
  • Globalny adres URL: *.azure-automation.net
  • Globalny adres URL w regionie US Gov Wirginia: *.azure-automation.us
  • Usługa agenta: https://<workspaceId>.agentsvc.azure-automation.net

Sprawdź swoją wiedzę

1.

Czym jest usługa Azure Automation State Configuration?

2.

Skrypt DSC programu PowerShell ______________.

3.

Dlaczego dla rozszerzenia DSC należy używać trybu ściągania zamiast trybu wypychania?