Ausführen von Automation-Runbooks in einem Hybrid Runbook Worker
Wichtig
Der Azure Automation Agent-basierte Benutzer-Hybrid Runbook Worker (Windows und Linux) wurde am 31. August 2024 eingestellt und wird nicht mehr unterstützt. Befolgen Sie die Richtlinien zum Migrieren von einem vorhandenen Agent-basierten Benutzer für Hybrid Runbook Worker zu erweiterungsbasierten Hybrid-Workern.
Hinweis
Das ausführende Azure Automation-Konto wurde am 30. September 2023 eingestellt und wird durch verwaltete Identitäten ersetzt. Befolgen Sie die Richtlinien zum Beginnen mit der Migration Ihrer Runbooks, um verwaltete Identitäten zu verwenden. Weitere Informationen finden Sie unter Migration von vorhandenen ausführenden Konten zur verwalteten Identität.
Von Runbooks, die in einem Hybrid Runbook Worker ausgeführt werden, werden in der Regel Ressourcen auf dem lokalen Computer oder in der lokalen Umgebung verwaltet, in der der Worker bereitgestellt ist. Runbooks in Azure Automation verwalten üblicherweise Ressourcen in der Azure-Cloud. Auch wenn sie unterschiedlich verwendet werden, sind Runbooks, die in Azure Automation ausgeführt werden, und Runbooks, die auf einem Hybrid Runbook Worker ausgeführt werden, von der Struktur her identisch.
Wenn Sie ein Runbook zur Ausführung auf einem Hybrid Runbook Worker erstellen, sollten Sie es auf dem Computer testen, der den Worker hostet. Auf dem Hostcomputer stehen alle PowerShell-Module sowie der Netzwerkzugriff zur Verfügung, die bzw. den Sie für die Verwaltung der lokalen Ressourcen benötigen. Sobald Sie das Runbook auf dem Hybrid Runbook Worker-Computer getestet haben, können Sie es in die Azure Automation-Umgebung hochladen, wo es auf dem Worker ausgeführt werden kann.
Planen von Azure-Diensten mit Firewallschutz
Durch das Aktivieren von Azure Firewall für Azure Storage, Azure Key Vault oder Azure SQL wird der Zugriff von Azure Automation-Runbooks für diese Dienste blockiert. Der Zugriff wird auch dann blockiert, wenn die Firewallausnahme zum Zulassen vertrauenswürdiger Microsoft-Dienste aktiviert ist, da Automation nicht zur Liste der vertrauenswürdigen Dienste gehört. Bei aktivierter Firewall kann der Zugriff nur mithilfe eines Hybrid Runbook Workers und eines VNT-Dienstendpunkts erfolgen.
Planen des Verhaltens von Runbookaufträgen
Azure Automation behandelt Aufträge in Hybrid Runbook Workern anders als Aufträge, die in Cloud-Sandboxes ausgeführt werden. Bei einem zeitintensiven Runbook müssen Sie sicherstellen, dass das Runbook auch nach einem möglichen Neustart stabil läuft. Ausführliche Informationen zum Auftragsverhalten finden Sie unter Hybrid Runbook Worker-Aufträge.
Dienstkonten
Windows Hybrid Worker
Aufträge für Hybrid Runbook Worker werden mit dem lokalen Konto System ausgeführt.
Hinweis
- PowerShell 5.1, PowerShell 7.1 (Vorschau), Python 2.7 und Python 3.8-Runbooks werden sowohl für erweiterungsbasierte als auch für Agent-basierte Windows Hybrid Runbook Worker unterstützt. Stellen Sie für Agent-basierte Mitarbeiter sicher, dass die Windows Hybrid Worker-Version 7.3.12960 oder höher ist.
- PowerShell 7.2- und Python 3.10-Runbooks (Vorschau) werden nur für erweiterungsbasierte Windows Hybrid Worker unterstützt. Stellen Sie sicher, dass die Windows Hybrid Worker-Erweiterungsversion 1.1.11 oder höher ist.
Hinweis
Führen Sie die folgenden Schritte aus, um Umgebungsvariable in Windows-Systemen zu erstellen:
- Wechseln Sie zu Einstellungen>System>Erweiterte Systemeinstellungen.
- Wählen Sie unter Systemeigenschaften die Option Umgebungsvariablen aus.
- Wählen Sie in Systemvariablen Neu aus.
- Geben Sie Variablennamen und Variablenwert ein und wählen Sie dann OK aus.
- Starten Sie den virtuellen Computer neu, oder melden Sie sich vom aktuellen Benutzer ab und melden Sie sich an, um die Umgebungsvariablenänderungen zu implementieren.
PowerShell 7.2
Um PowerShell 7.2-Runbooks auf einem Windows Hybrid Worker auszuführen, installieren Sie PowerShell auf dem Hybrid Worker. Weitere Informationen siehe Installieren von PowerShell unter Windows.
Erstellen Sie nach Abschluss der PowerShell 7.2-Installation eine Umgebungsvariable mit variablem Namen als powershell_7_2_path und Variablenwert als Speicherort der ausführbaren PowerShell. Starten Sie den Hybrid Runbook Worker neu, nachdem die Umgebungsvariable erfolgreich erstellt wurde.
PowerShell 7.1
Um PowerShell 7.1-Runbooks auf einem Windows Hybrid Worker auszuführen, installieren Sie PowerShell auf dem Hybrid Worker. Weitere Informationen siehe Installieren von PowerShell unter Windows. Stellen Sie sicher, dass Sie die PowerShell-Datei zur PATH-Umgebungsvariable hinzufügen und den Hybrid Runbook Worker nach der Installation neu starten.
Python 3.10
Um Python 3.10-Runbooks auf einem Windows Hybrid Worker auszuführen, installieren Sie Python auf dem Hybrid Worker. Siehe Installieren von Python unter Windows.
Nachdem die Installation von Python 3.10 abgeschlossen ist, erstellen Sie eine Umgebungsvariable mit variablem Namen als python_3_10_path- und Variablenwert als Speicherort des ausführbaren Python. Starten Sie den Hybrid Runbook Worker neu, nachdem die Umgebungsvariable erfolgreich erstellt wurde.
Python 3.8
Um Python 3.8-Runbooks auf einem Windows Hybrid Worker auszuführen, installieren Sie Python auf dem Hybrid Worker. Siehe Installieren von Python unter Windows. Erstellen Sie Umgebungsvariable PYTHON_3_PATH für Python 3.8-Runbooks, und stellen Sie sicher, dass Sie den Speicherort der ausführbaren Python-Datei als Variablenwert hinzufügen. Starten Sie den Hybrid Runbook Worker neu, nachdem die Umgebungsvariable erfolgreich erstellt wurde.
Wenn sich die ausführbare Python-Datei am Standardspeicherort C:\WPy64-3800\python-3.8.0.amd64\python.exebefindet, müssen Sie die Umgebungsvariable nicht erstellen.
Python 2.7
Um Python 2.7-Runbooks auf einem Windows Hybrid Worker auszuführen, installieren Sie Python auf dem Hybrid Worker. Siehe Installieren von Python unter Windows. Erstellen Sie Umgebungsvariable PYTHON_2_PATH für Python 2.7-Runbooks, und stellen Sie sicher, dass Sie den Speicherort der ausführbaren Python-Datei als Variablenwert hinzufügen. Starten Sie den Hybrid Runbook Worker neu, nachdem die Umgebungsvariable erfolgreich erstellt wurde.
Wenn sich die ausführbare Python-Datei am Standardspeicherort C:\Python27\python.exe befindet, müssen Sie die Umgebungsvariable nicht erstellen.
Linux Hybrid Worker
Hinweis
- PowerShell 5.1, PowerShell 7.1 (Vorschau), Python 2.7, Python 3.8 Runbooks werden sowohl für erweiterungsbasierte als auch Agent-basierte Linux Hybrid Runbook Workers unterstützt. Stellen Sie für Agent-basierte Worker sicher, dass mindestens Linux Hybrid Runbook Worker-Version 1.7.5.0 vorliegt.
- PowerShell 7.2- und Python 3.10-Runbooks (Vorschau) werden nur für erweiterungsbasierte Linux Hybrid Worker unterstützt. Stellen Sie sicher, dass die Linux Hybrid Worker-Erweiterungsversion 1.1.11 oder höher ist.
Hinweis
Führen Sie die folgenden Schritte aus, um Umgebungsvariable in Linux-Systemen zu erstellen:
- Öffnen Sie /etc/environment.
- Erstellen Sie eine neue Umgebungsvariable, indem Sie VARIABLE_NAME="variable_value" in einer neuen Zeile in /etc/environment hinzufügen (VARIABLE_NAME ist der Name der neuen Umgebungsvariable und variable_value der Wert, der ihr zugewiesen werden soll).
- Starten Sie den virtuellen Computer neu, oder melden Sie sich vom aktuellen Benutzer ab und melden Sie sich an, nachdem die Änderungen an /etc/environment gespeichert wurden, um Umgebungsvariablenänderungen zu implementieren.
PowerShell 7.2
Um PowerShell 7.2-Runbooks auf einem Linux Hybrid Worker auszuführen, installieren Sie die PowerShell-Datei auf dem Hybrid Worker. Weitere Informationen finden Sie unter Installieren von PowerShell unter Linux.
Erstellen Sie nach Abschluss der Installation von PowerShell 7.2 eine Umgebungsvariable mit dem Variablennamen powershell_7_2_path und dem Variablenwert als Speicherort der ausführbaren PowerShell-Datei. Starten Sie den Hybrid Runbook Worker neu, nachdem eine Umgebungsvariable erfolgreich erstellt wurde.
Python 3.10
Um Python 3.10-Runbooks auf einem Linux Hybrid Worker auszuführen, installieren Sie Python auf dem Hybrid Worker. Weitere Informationen finden Sie unter Installieren von Python 3.10 unter Linux.
Erstellen Sie nach Abschluss der Python 3.10-Installation eine Umgebungsvariable mit dem Variablennamen python_3_10_path und dem Variablenwert als Speicherort der ausführbaren Python-Datei. Starten Sie den Hybrid Runbook Worker neu, nachdem die Umgebungsvariable erfolgreich erstellt wurde.
Python 3.8
Um Python 3.8-Runbooks auf einem Linux Hybrid Worker auszuführen, installieren Sie Python auf dem Hybrid Worker. Stellen Sie sicher, dass Sie die ausführbare Python-Datei zur PATH-Umgebungsvariable hinzufügen und den Hybrid Runbook Worker nach der Installation neu starten.
Python 2.7
Um Python 2.7-Runbooks auf einem Linux Hybrid Worker auszuführen, installieren Sie Python auf dem Hybrid Worker. Stellen Sie sicher, dass Sie die ausführbare Python-Datei zur PATH-Umgebungsvariable hinzufügen und den Hybrid Runbook Worker nach der Installation neu starten.
Konfigurieren von Runbookberechtigungen
Definieren Sie Berechtigungen für Ihr Runbook, um die Ausführung im Hybrid Runbook Worker zu ermöglichen:
- Lassen Sie das Runbook sich selbst bei lokalen Ressourcen authentifizieren.
- Konfigurieren Sie die Authentifizierung mit verwalteten Identitäten für Azure-Ressourcen.
- Geben Sie Hybrid Worker-Anmeldeinformationen an, um einen Benutzerkontext für alle Runbooks bereitzustellen.
Verwenden der Runbookauthentifizierung bei lokalen Ressourcen
Wenn Sie ein Runbook vorbereiten, das sich selbst bei Ressourcen authentifiziert, verwenden Sie in Ihrem Runbook die Objekte für Anmeldeinformationen und Zertifikat. Es gibt verschiedene Cmdlets, mit denen Sie Anmeldeinformationen angeben können, damit sich das Runbook bei verschiedenen Ressourcen authentifizieren kann. Das folgende Beispiel zeigt einen Teil eines Runbooks, mit dem ein Computer neu gestartet wird. Es werden Anmeldeinformationen aus einem Anmeldeinformationsobjekt und der Name des Computers aus einem Variablenobjekt abgerufen. Anschließend werden diese Werte im Cmdlet Restart-Computer
eingesetzt.
$Cred = Get-AutomationPSCredential -Name "MyCredential"
$Computer = Get-AutomationVariable -Name "ComputerName"
Restart-Computer -ComputerName $Computer -Credential $Cred
Sie können auch eine Aktivität des Typs InlineScript verwenden. InlineScript
ermöglicht das Ausführen von Codeblöcken auf einem anderen Computer mit Anmeldeinformationen.
Verwenden der Runbookauthentifizierung mit verwalteten Identitäten
Von Hybrid Runbook Workern, die auf virtuellen Azure-Computern ausgeführt werden, können verwaltete Identitäten für die Authentifizierung bei Azure-Ressourcen genutzt werden. Der Einsatz verwalteter Identitäten für Azure-Ressourcen anstelle ausführender Konten bietet Vorteile, da die folgenden Schritte nicht erforderlich sind:
- Das Exportieren des Zertifikats für das ausführende Konto und anschließende Importieren in den Hybrid Runbook Worker.
- Das Verlängern des vom ausführenden Konto verwendeten Zertifikats.
- Das Verarbeiten des Verbindungsobjekts des ausführenden Kontos.
Es gibt zwei Möglichkeiten, die verwalteten Identitäten in Hybrid Runbook Worker-Skripts zu verwenden.
Verwenden der systemseitig zugewiesenen verwalteten Identität für ein Automation-Konto:
Konfigurieren Sie eine systemseitig zugewiesene verwaltete Identität für das Automation-Konto.
Gewähren Sie dieser Identität die erforderlichen Berechtigungen innerhalb des Abonnements, damit sie ihre Aufgabe ausführen kann.
Aktualisieren Sie das Runbook so, dass das Cmdlet Connect-AzAccount mit dem Parameter
Identity
zur Authentifizierung bei Azure-Ressourcen verwendet wird. Diese Konfiguration reduziert die Notwendigkeit, ein ausführendes Konto zu verwenden und die zugehörige Kontoverwaltung durchzuführen.# Ensures you do not inherit an AzContext in your runbook Disable-AzContextAutosave -Scope Process # Connect to Azure with system-assigned managed identity $AzureContext = (Connect-AzAccount -Identity).context # set and store context $AzureContext = Set-AzContext -SubscriptionName $AzureContext.Subscription -DefaultProfile $AzureContext # Get all VM names from the subscription Get-AzVM -DefaultProfile $AzureContext | Select Name
Hinweis
Es ist nicht möglich, die benutzerseitig verwaltete Identität des Automation-Kontos für eine Hybrid Runbook Worker-Instanz zu verwenden, es muss die systemseitig verwaltete Identität des Automation-Kontos sein.
Verwenden Sie für eine als Hybrid Runbook Worker ausgeführte Azure-VM die verwaltete VM-Identität. In diesem Fall können Sie entweder die benutzerseitig zugewiesene verwaltete Identität der VM ODER die systemseitig zugewiesene verwaltete Identität der VM verwenden.
Hinweis
Dies funktioniert NICHT in einem Automation-Konto, das mit einer verwalteten Automation-Konto-Identität konfiguriert wurde. Sobald die verwaltete Automation-Konto-Identität aktiviert ist, kann die verwaltete Identität der VM nicht mehr verwendet werden, und dann ist es nur möglich, die systemseitig zugewiesene verwaltete Automation-Konto-Identität wie in Option 1 oben erwähnt zu verwenden.
Verwenden Sie eine der folgenden verwalteten Identitäten:
- Systemseitig zugewiesene verwaltete Identität der VM
- Benutzerseitig zugewiesene verwaltete Identität der VM
- Konfigurieren einer systemseitig verwalteten Identität für die VM.
- Gewähren Sie dieser Identität die erforderlichen Berechtigungen innerhalb des Abonnements, damit sie ihre Aufgaben ausführen kann.
- Aktualisieren Sie das Runbook so, dass das Cmdlet Connect-Az-Account mit dem Parameter
Identity
zur Authentifizierung bei Azure-Ressourcen verwendet wird. Diese Konfiguration reduziert die Notwendigkeit, ein ausführendes Konto zu verwenden und die zugehörige Kontoverwaltung durchzuführen.
# Ensures you do not inherit an AzContext in your runbook Disable-AzContextAutosave -Scope Process # Connect to Azure with system-assigned managed identity $AzureContext = (Connect-AzAccount -Identity).context # set and store context $AzureContext = Set-AzContext -SubscriptionName $AzureContext.Subscription -DefaultProfile $AzureContext # Get all VM names from the subscription Get-AzVM -DefaultProfile $AzureContext | Select Name
Ein als Hybrid Runbook Worker ausgeführter Server oder VMware vSphere-VM mit Azure Arc-Unterstützung verfügt bereits über eine integrierte systemseitig zugewiesene verwaltete Identität, die für die Authentifizierung verwendet werden kann.
Sie können diesen Zugriff der verwalteten Identität auf Ressourcen in Ihrem Abonnement im Blatt „Zugriffssteuerung“ (IAM) für die Ressource gewähren, indem Sie die entsprechende Rollenzuweisung hinzufügen.
Fügen Sie die verwaltete Azure Arc-Identität wie erforderlich Ihrer ausgewählten Rolle hinzu.
Hinweis
Dies funktioniert NICHT in einem Automation-Konto, das mit einer verwalteten Automation-Konto-Identität konfiguriert wurde. Sobald die verwaltete Automation-Konto-Identität aktiviert ist, kann die verwaltete Arc-Identität nicht mehr verwendet werden, und dann ist es nur möglich, die systemseitig zugewiesene verwaltete Automation-Konto-Identität wie in Option 1 oben erwähnt zu verwenden.
Hinweis
Die Azure-Kontexte werden standardmäßig für die Verwendung zwischen PowerShell-Sitzungen gespeichert. Wenn ein vorheriges Runbook für den Hybrid Runbook Worker bei Azure authentifiziert wurde, wird dieser Kontext möglicherweise auf dem Datenträger im PowerShell-Profil des Systems beibehalten, wie in der Microsoft-Dokumentation unter Azure PowerShell-Kontextobjekte erläutert. Beispielsweise kann ein Runbook mit Get-AzVM
alle VMs im Abonnement ohne Aufruf von Connect-AzAccount
zurückgeben, und der Benutzer kann auf Azure-Ressourcen zugreifen, ohne sich innerhalb dieses Runbook zu authentifizieren. Sie können die automatische Kontextspeicherung in Azure PowerShell deaktivieren, wie hier beschrieben.
Verwenden der Runbook-Authentifizierung mit Hybrid Worker-Anmeldeinformationen
Voraussetzung
- Hybrid Worker sollte bereitgestellt werden, und der Computer sollte sich im Ausführungsstatus befinden, bevor ein Runbook ausgeführt wird.
Hybrid Worker-Anmeldeinformationen Um zu vermeiden, dass Ihr Runbook seine eigene Authentifizierung bei lokalen Ressourcen bereitstellen muss, können Sie für eine Hybrid Runbook Worker-Gruppe Hybrid Worker-Anmeldeinformationen angeben. Damit Sie Hybrid Worker-Anmeldeinformationen angeben können, müssen Sie ein Anmeldeinformationsobjekt mit Zugriff auf lokale Ressourcen definieren. Zu diesen Ressourcen gehören Zertifikatsspeicher und alle Runbooks, die unter diesen Anmeldeinformationen auf einem Hybrid Runbook Worker in der Gruppe ausgeführt werden.
Der Benutzername für die Anmeldeinformationen muss eines der folgenden Formate haben:
- Domäne\Benutzername
- benutzername@domäne
- Benutzername (für Konten, die für den lokalen Computer lokal sind)
Um das PowerShell-Runbook Export-RunAsCertificateToHybridWorker verwenden zu können, müssen Sie die AZ-Module for Azure Automation auf dem lokalen Computer installieren.
Verwenden eines Anmeldeinformationsobjekts für eine Hybrid Runbook Worker-Gruppe
Standardmäßig werden die Hybridaufträge im Kontext des Systemkontos ausgeführt. Um Hybridaufträge jedoch unter einem anderen Anmeldeinformationsobjekt auszuführen, führen Sie die folgenden Schritte aus:
- Erstellen Sie ein Anmeldeinformationsobjekt mit Zugriff auf lokale Ressourcen.
- Öffnen Sie im Azure-Portal das Automation-Konto.
- Wählen Sie Hybrid Worker-Gruppen und dann eine bestimmte Gruppe aus.
- Wählen Sie Settingsaus.
- Ändern Sie den Wert von Hybrid Worker-Anmeldeinformationen von Standard in Benutzerdefiniert.
- Wählen Sie die Anmeldeinformationen aus, und klicken Sie auf Speichern.
- Wenn die folgenden Berechtigungen für „Benutzerdefinierte“ Benutzer nicht zugewiesen sind, werden Aufträge möglicherweise angehalten.
Ressourcentyp | Ordnerberechtigungen |
---|---|
Azure VM | C:\Packages\Plugins\Microsoft.Azure.Automation.HybridWorker.HybridWorkerForWindows (Lesen und Ausführen) |
Server mit Arc-Unterstützung | C:\ProgramData\AzureConnectedMachineAgent\Tokens (Lesen) C:\Packages\Plugins\Microsoft.Azure.Automation.HybridWorker.HybridWorkerForWindows (Lesen und Ausführen) |
Hinweis
Linux Hybrid Worker unterstützt keine Hybrid Worker-Anmeldeinformationen.
Starten eines Runbooks auf einem Hybrid Runbook Worker
Unter Starten eines Runbooks in Azure Automation werden die verschiedenen Methoden zum Starten eines Runbooks beschrieben. Beim Starten eines Runbooks auf einem Hybrid Runbook Worker wird die Option Ausführen auf verwendet, mit der Sie den Namen einer Hybrid Runbook Worker-Gruppe angeben können. Wenn eine Gruppe angegeben wird, ruft einer der Worker in dieser Gruppe das Runbook ab und führt es aus. Wenn Ihr Runbook diese Option nicht angibt, führt Azure Automation das Runbook wie gewohnt aus.
Wenn Sie ein Runbook im Azure-Portal starten, wird die Option Ausführen auf angezeigt, für die Sie entweder Azure oder Hybrid Worker auswählen können. Wählen Sie Hybrid Worker aus, um in einer Dropdownliste die gewünschte Hybrid Runbook Worker-Gruppe auszuwählen.
Wenn Sie ein Runbook mit PowerShell starten, verwenden Sie das Cmdlet Start-AzAutomationRunbook mit dem Parameter RunOn
. Das folgende Beispiel verwendet Windows PowerShell, um ein Runbook namens Test-Runbook in einer Hybrid Runbook Worker-Gruppe namens MyHybridGroup zu starten.
Start-AzAutomationRunbook -AutomationAccountName "MyAutomationAccount" -Name "Test-Runbook" -RunOn "MyHybridGroup"
Arbeiten mit signierten Runbooks auf einem Windows Hybrid Runbook Worker
Sie können eine Windows Hybrid Runbook Worker so konfigurieren, dass nur signierte Runbooks ausgeführt werden.
Wichtig
Wenn Sie einen Hybrid Runbook Worker dafür konfiguriert haben, nur signierte Runbooks auszuführen, können von dem Worker keine nicht signierten Runbooks mehr ausgeführt werden.
Hinweis
PowerShell 7.x unterstützt keine signierten Runbooks für Windows und Linux Hybrid Runbook Worker.
Erstellen des Signaturzertifikats
In folgendem Beispiel wird ein selbstsigniertes Zertifikat erstellt, das für das Signieren von Runbooks verwendet werden kann. Mit diesem Code wird das Zertifikat erstellt und exportiert, damit der Runbook Worker es später importieren kann. Der Fingerabdruck wird auch für die spätere Verwendung beim Verweisen auf das Zertifikat zurückgegeben.
# Create a self-signed certificate that can be used for code signing
$SigningCert = New-SelfSignedCertificate -CertStoreLocation cert:\LocalMachine\my `
-Subject "CN=contoso.com" `
-KeyAlgorithm RSA `
-KeyLength 2048 `
-Provider "Microsoft Enhanced RSA and AES Cryptographic Provider" `
-KeyExportPolicy Exportable `
-KeyUsage DigitalSignature `
-Type CodeSigningCert
# Export the certificate so that it can be imported to the hybrid workers
Export-Certificate -Cert $SigningCert -FilePath .\hybridworkersigningcertificate.cer
# Import the certificate into the trusted root store so the certificate chain can be validated
Import-Certificate -FilePath .\hybridworkersigningcertificate.cer -CertStoreLocation Cert:\LocalMachine\Root
# Retrieve the thumbprint for later use
$SigningCert.Thumbprint
Importieren von Zertifikaten und Konfigurieren von Workern für die Signaturprüfung
Kopieren Sie das erstellte Zertifikat in jeden Hybrid Runbook Worker in einer Gruppe. Führen Sie das folgende Skript aus, um das Zertifikat zu importieren und die Worker so zu konfigurieren, dass die Signaturüberprüfung auf Runbooks verwendet wird.
# Install the certificate into a location that will be used for validation.
New-Item -Path Cert:\LocalMachine\AutomationHybridStore
Import-Certificate -FilePath .\hybridworkersigningcertificate.cer -CertStoreLocation Cert:\LocalMachine\AutomationHybridStore
# Import the certificate into the trusted root store so the certificate chain can be validated
Import-Certificate -FilePath .\hybridworkersigningcertificate.cer -CertStoreLocation Cert:\LocalMachine\Root
# Configure the hybrid worker to use signature validation on runbooks.
Set-HybridRunbookWorkerSignatureValidation -Enable $true -TrustedCertStoreLocation "Cert:\LocalMachine\AutomationHybridStore"
Signieren von Runbooks mithilfe des Zertifikats
Da die Hybrid Runbook Worker nur für die Verwendung signierter Runbooks konfiguriert sind, müssen Sie Runbooks signieren, die auf dem Hybrid Runbook Worker verwendet werden sollen. Verwenden Sie den folgenden PowerShell-Beispielcode, um diese Runbooks zu signieren.
$SigningCert = ( Get-ChildItem -Path cert:\LocalMachine\My\<CertificateThumbprint>)
Set-AuthenticodeSignature .\TestRunbook.ps1 -Certificate $SigningCert
Nachdem ein Runbook signiert wurde, muss es in Ihr Automation-Konto importiert und mithilfe des Signaturblocks veröffentlicht werden. Informationen zum Importieren von Runbooks finden Sie unter Importieren eines Runbooks.
Hinweis
Verwenden Sie nur Klartextzeichen in Ihrem Runbookcode, einschließlich Kommentaren. Die Verwendung von Zeichen mit diakritischen Markierungen, z. B. á oder ñ, führt zu einem Fehler. Wenn Azure Automation Ihren Code herunterlädt, werden die Zeichen durch ein Fragezeichen ersetzt und die Signatur schlägt mit der Meldung „Signaturhash-Validierungsfehler“ fehl.
Arbeiten mit signierten Runbooks auf einem Linux Hybrid Runbook Worker
Um mit signierten Runbooks arbeiten zu können, muss ein Linux Hybrid Runbook Worker auf dem lokalen Computer über die GPG-Datei verfügen.
Wichtig
Wenn Sie einen Hybrid Runbook Worker dafür konfiguriert haben, nur signierte Runbooks auszuführen, können von dem Worker keine nicht signierten Runbooks mehr ausgeführt werden.
Führen Sie die folgenden Schritte aus, um die Konfiguration abzuschließen:
- Erstellen eines GPG-Schlüsselbunds und -Schlüsselpaars
- Bereitstellen des Schlüsselbunds für den Hybrid Runbook Worker
- Überprüfen, ob die Signaturüberprüfung aktiviert ist
- Signieren eines Runbooks
Hinweis
- PowerShell 7.x unterstützt keine signierten Runbooks für Agent-basiertes Windows und Agent-basierte Linux Hybrid Runbook Worker.
- PowerShell- und Python-Runbooks werden für erweiterungsbasierte Linux Hybrid Worker nicht unterstützt.
Erstellen eines GPG-Schlüsselbunds und -Schlüsselpaars
Hinweis
Das Erstellen eines GPG-Schlüsselrings und eines Schlüsselpaars betrifft nur die Agent-basierten Hybrid Worker.
Verwenden Sie das Hybrid Runbook Worker-Konto nxautomation, um den GPG-Schlüsselbund und das GPG-Schlüsselpaar zu erstellen.
Verwenden Sie die Anwendung sudo, um sich mit dem Konto nxautomation anzumelden.
sudo su - nxautomation
Sobald Sie nxautomation verwenden, generieren Sie das GPG-Schlüsselpaar als Stamm. GPG führt Sie durch die Schritte. Sie müssen Name, E-Mail-Adresse, Ablaufzeit und Passphrase angeben. Warten Sie anschließend, bis die Entropie auf dem Computer ausreicht, um den Schlüssel zu generieren.
sudo gpg --generate-key
Da das GPG-Verzeichnis mit sudo generiert wurde, müssen Sie seinen Besitzer mit dem folgenden Befehl als Stamm in nxautomation ändern.
sudo chown -R nxautomation ~/.gnupg
Bereitstellen des Schlüsselbunds für den Hybrid Runbook Worker
Nachdem der Schlüsselbund erstellt wurde, stellen Sie ihn dem Hybrid Runbook Worker zur Verfügung. Ändern Sie die Einstellungsdatei home/nxautomation/state/worker.conf so, dass sie im Dateiabschnitt [worker-optional]
den folgenden Beispielcode enthält.
gpg_public_keyring_path = /home/nxautomation/run/.gnupg/pubring.kbx
Überprüfen, ob die Signaturüberprüfung aktiviert ist
Wenn die Signaturprüfung auf dem Computer deaktiviert wurde, müssen Sie sie durch Ausführen des folgenden Befehls als Stamm aktivieren. Ersetzen Sie <LogAnalyticsworkspaceId>
durch die ID Ihres Arbeitsbereichs.
sudo python /opt/microsoft/omsconfig/modules/nxOMSAutomationWorker/DSCResources/MSFT_nxOMSAutomationWorkerResource/automationworker/scripts/require_runbook_signature.py --true <LogAnalyticsworkspaceId>
Signieren eines Runbooks
Signieren Sie das Runbook nach dem Konfigurieren der Signaturprüfung mit dem folgenden GPG-Befehl.
gpg --clear-sign <runbook name>
Das signierte Runbook heißt <Runbookname>.asc.
Sie können nun das signierte Runbook in Azure Automation hochladen und es wie ein herkömmliches Runbook ausführen.
Protokollierung
Zur Unterstützung der Problembehandlung bei Runbooks, die auf einem Hybrid Runbook Worker ausgeführt werden, werden Protokolle lokal am folgenden Speicherort gespeichert:
Unter Windows unter
C:\ProgramData\Microsoft\System Center\Orchestrator\<version>\SMA\Sandboxes
mit einer ausführlichen Protokollierung des Laufzeitprozesses des Auftrags. Allgemeine Runbook-Auftragsstatusereignisse werden in das Ereignisprotokoll Application and Services Logs\Microsoft-Automation\Operations geschrieben.Unter Linux finden Sie die Benutzerprotokolle für Hybrid Worker unter
/home/nxautomation/run/worker.log
und die Systemprotokolle für Runbook Worker unter/var/opt/microsoft/omsagent/run/automationworker/worker.log
.
Nächste Schritte
- Weitere Informationen zum Hybrid Runbook Worker finden Sie unter Automatisierung des Hybrid Runbook Worker.
- Wenn Ihre Runbooks nicht erfolgreich ausgeführt werden, lesen Sie den Problembehandlungsleitfaden zu Fehlern bei der Ausführung von Runbooks.
- Weitere Informationen zu PowerShell, einschließlich Sprachverzeichnis und Lernmodulen, finden Sie in der PowerShell-Dokumentation.
- Hier erfahren Sie mehr über Azure Policy zum Verwalten der Runbookausführung mit Hybrid Runbook Workers.
- Eine Referenz zu den PowerShell-Cmdlets finden Sie unter Az.Automation.