Was ist Azure Automation State Configuration?

Abgeschlossen

Mit Azure Automation State Configuration können Sie sicherstellen, dass die VMs in einem Clusterbereich einen konsistenten Zustand mit derselben installierten Software und identischen Konfigurationen aufweisen.

In dieser Lerneinheit erfahren Sie mehr über die Features und Funktionen von Azure Automation sowie das deklarative Modell von PowerShell Desired State Configuration (DSC) und seine Vorteile.

Azure Automation State Configuration ist ein Azure-Dienst, der auf PowerShell basiert. Mit DSC können Sie all Ihre Ressourcen konsistent bereitstellen, zuverlässig überwachen und den gewünschten Zustand automatisch aktualisieren. Azure Automation stellt Tools bereit, um die Konfigurationen zu definieren und auf echte und virtuelle Computer anzuwenden.

Gründe für die Verwendung von Azure Automation State Configuration

Die manuelle Verwaltung einer richtigen und einheitlichen Konfiguration für die Server, auf denen Ihre Dienste ausgeführt werden, kann schwierig und fehleranfällig sein. Azure Automation State Configuration verwendet PowerShell DSC, um diese Herausforderungen zu meistern. Die DSC-Artefakte und der DSC-Prozess werden zentral verwaltet.

Azure Automation State Configuration verfügt über einen integrierten Pullserver. Sie können Zielknoten festlegen, die automatisch Konfigurationen von diesem Pullserver erhalten sollen, dem gewünschten Zustand entsprechen und ihre Konformität melden. Sie können virtuelle oder physische Windows- oder Linux-Computer in der Cloud oder lokal als Zielcomputer verwenden.

Sie können Azure Monitor-Protokolle verwenden, um die Konformität Ihrer Knoten zu überprüfen, indem Sie Azure Automation State Configuration zum Senden dieser Daten konfigurieren.

Was ist PowerShell DSC?

PowerShell DSC ist eine deklarative Verwaltungsplattform, die von Azure Automation State Configuration zum Konfigurieren, Bereitstellen und Steuern von Systemen verwendet wird. Eine deklarative Programmiersprache trennt die Absicht (was Sie erreichen möchten) von der Ausführung (wie Sie es erreichen möchten). Sie legen den gewünschten Zustand fest, und DSC kümmert sich darum, diesen Zustand zu erreichen. Sie müssen nicht wissen, wie Sie ein Feature implementieren oder bereitstellen, wenn eine DSC-Ressource verfügbar ist. Stattdessen können Sie sich auf die Struktur Ihrer Bereitstellung konzentrieren.

Wenn Sie PowerShell bereits verwenden, fragen Sie sich vielleicht, warum Sie DSC benötigen. Betrachten Sie das folgende Beispiel.

Wenn Sie eine Dateifreigabe auf einem Windows-Server erstellen möchten, würden Sie möglicherweise den folgenden PowerShell-Befehl verwenden:

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

Dieses Skript ist unkompliziert und leicht verständlich. Wenn Sie dieses Skript in einer Produktionsumgebung verwendeten, würden jedoch einige Probleme auftreten. Überlegen Sie, was passieren könnte, wenn das Skript mehrmals ausgeführt oder User2 bereits über Vollzugriff anstatt über schreibgeschützten Zugriff verfügen würde.

Dieser Ansatz ist nicht idempotent. Idempotenz beschreibt einen Vorgang, der unabhängig von der Anzahl der Ausführungen dieselbe Auswirkung hat. Sie müssten Logik und Fehlerbehandlung hinzufügen, um Idempotenz in PowerShell zu erreichen. Wenn die Dateifreigabe noch nicht vorhanden ist, erstellen Sie sie. Wenn die Freigabe vorhanden ist, muss Sie nicht erstellt werden. Wenn User2 vorhanden ist, aber nicht über Lesezugriff verfügt, gewähren Sie den Lesezugriff.

Ihr PowerShell-Skript sollte dem folgenden Beispiel ähneln:

$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
    }
}

Andere Sonderfälle, die Sie nicht berücksichtigt haben, werden möglicherweise erst sichtbar, wenn Probleme auftreten. In DSC werden unerwartete Fälle automatisch behandelt. Wenn Sie DSC verwenden, beschreiben Sie das Ergebnis und nicht den Prozess, mit dem Sie das Ergebnis erzielen möchten.

Der folgende DSC-Codeausschnitt ist ein Beispiel:

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

Im vorherigen Beispiel wird das xSmbShare-Modul verwendet, das DSC anweist, wie der Zustand einer Dateifreigabe überprüft werden soll. Das DSC-Ressourcenkit enthält mehr als 100 Ressourcenmodule, einschließlich eines Moduls zum Installieren einer IIS-Website. Einen Link zum DSC-Ressourcenkit finden Sie in der Lerneinheit „Zusammenfassung“ am Ende dieses Moduls.

In der nächsten Lerneinheit erfahren Sie mehr über die PowerShell DSC-Codestruktur.

Was ist der LCM?

Der lokale Konfigurations-Manager ist eine Komponente von Windows Management Framework auf einem Windows-Betriebssystem. Der LCM ist dafür zuständig, den Zustand eines Knotens wie eine VM zu aktualisieren, damit dieser dem gewünschten Zustand entspricht. Jedes Mal, wenn der LCM ausgeführt wird, werden die folgenden Schritte ausgeführt:

  1. Abrufen: In diesem Schritt wird der aktuelle Status des Knotens abgerufen.
  2. Testen: Hier wird der aktuelle Status eines Knotens mithilfe eines kompilierten DSC-Skripts (MOF-Datei) mit dem gewünschten Status abgeglichen.
  3. Festlegen: Im letzten Schritt wird der Knoten so aktualisiert, dass er den in der MOF-Datei beschriebenen gewünschten Status aufweist.

Sie konfigurieren den lokalen Konfigurationsmanager (Local Configuration Manager, LCM), wenn Sie eine VM mit Azure Automation registrieren.

Push- und Pullarchitekturen in DSC

Der LCM auf den einzelnen Knoten kann in zwei Modi betrieben werden.

  • Pushmodus: Ein Administrator sendet die Konfigurationen manuell per Push an einen oder mehrere Knoten. Der LCM stellt sicher, dass der Zustand jedes Knotens mit dem von der Konfiguration angegebenen übereinstimmt.

    Abbildung mit einer Pusharchitektur in DSC

  • Pullmodus: Ein Pullserver enthält die Konfigurationsinformationen. Der LCM fragt auf jedem Knoten den Pullserver automatisch in regelmäßigen Abständen von 15 Minuten ab, um die neuesten Konfigurationsdetails abzurufen. Diese Anforderungen werden im folgenden Diagramm als Schritt 1 bezeichnet. In Schritt 2 sendet der Pullserver die Details zu allen Konfigurationsänderungen zurück an jeden Knoten.

    Im Pullmodus muss jeder Knoten beim Pulldienst registriert werden.

    Abbildung mit einer Pullarchitektur in DSC

Beide Modi bieten Vorteile:

  • Der Pushmodus kann einfach eingerichtet werden. Er benötigt keine eigene dedizierte Infrastruktur und kann auf einem Laptop ausgeführt werden. Der Pushmodus ist hilfreich, um die Funktionalität von DSC zu testen. Sie können den Pushmodus auch verwenden, um einen neu mit einem Image versehenen Computer in den gewünschten Baselinezustand zu bringen.
  • Der Pullmodus ist nützlich in einer Unternehmensbereitstellung, die eine große Anzahl von Computern umfasst. Der LCM fragt den Pullserver regelmäßig ab und stellt sicher, dass sich die Knoten im gewünschten Zustand befinden. Wenn ein externes Tool oder Team Hotfixes anwendet, die zu einer Konfigurationsabweichung auf einzelnen Computern führen, werden diese Computer schnell mit der von Ihnen festgelegten Konfiguration wiederhergestellt. Dieser Prozess kann Ihnen helfen, einen fortlaufenden Konformitätszustand für Ihre Sicherheitsverpflichtungen und gesetzlichen Verpflichtungen zu erzielen.

Unterstützte Plattformen und Betriebssysteme

Azure Automation DSC wird von Azure Cloud Services und anderen Cloudanbietern, ihrer lokalen Infrastruktur oder einer Hybridkombination all dieser Umgebungen unterstützt.

Azure Automation DSC unterstützt die folgenden Betriebssysteme:

  • Windows
    • Server 2022
    • Server 2019
    • Server 2016
    • Server 2012 R2
    • Server 2012
    • Server 2008 R2 SP1
    • 11
    • 10
    • 8.1
    • 7
  • Linux

PowerShell DSC ist auf allen Linux-Computern installiert, die Azure Automation DSC unterstützt.

DSC-Anforderungen für Windows

Für Windows-Computer verwendet die VM-Erweiterung für Azure Desired State Configuration (DSC) WMF, um die Versionen von Windows-Features wie Windows PowerShell DSC und Windows-Remoteverwaltung (WinRM) zu verwalten. Azure DSC unterstützt WMF 4.0 und höher. Auf Windows-Computern muss daher Windows Server 2008 R2 SP1, Windows 7 oder höher ausgeführt werden.

Wenn die Azure DSC-Erweiterung zum ersten Mal aufgerufen wird, wird eine betriebssystemkompatible WMF-Version unter allen Windows-Versionen mit Ausnahme von Windows Server 2016 und höher installiert. Für Windows Server 2016 und höhere Versionen ist bereits die neueste Version von WMF installiert. Nach der Installation von WMF ist ein Neustart des Computers erforderlich.

WinRM ist auf Computerknoten aktiviert, auf denen Windows Server 2012 oder höher oder Windows 7 oder höher ausgeführt wird.

Die Proxyunterstützung für den DSC-Agent ist in Windows-Builds, Version 1809 und höher, verfügbar. Die Proxyunterstützung ist in DSC für frühere Versionen von Windows nicht verfügbar.

Weitere DSC-Anforderungen

Wenn sich Ihre Knoten in einem privaten Netzwerk befinden, benötigt DSC für die Kommunikation mit Azure Automation den folgenden Port und die folgenden URLs:

  • Port: Für ausgehenden Zugriff auf das Internet ist nur TCP 443 erforderlich.
  • Globale URL: *.azure-automation.net
  • Globale URL von „US Gov Virginia“: *.azure-automation.us
  • Agent-Dienst: https://<workspaceId>.agentsvc.azure-automation.net

Überprüfen Sie Ihr Wissen

1.

Was ist Azure Automation State Configuration?

2.

PowerShell DSC-Skripts ______________.

3.

Warum sollten Sie den Pullmodus anstelle des Pushmodus für DSC verwenden?