Uruchamianie elementów Runbook w hybrydowym procesie roboczym elementu Runbook w usłudze Automation
Ważne
Hybrydowy proces roboczy elementu Runbook opartego na agencie usługi Azure Automation (Windows i Linux) został wycofany 31 sierpnia 2024 r. i nie jest już obsługiwany. Postępuj zgodnie z wytycznymi dotyczącymi migracji z istniejących hybrydowych procesów roboczych elementów Runbook użytkownika opartych na agentach do hybrydowych procesów roboczych opartych na rozszerzeniach.
Uwaga
Konto Uruchom jako usługi Azure Automation zostało wycofane 30 września 2023 r. i zostało zastąpione tożsamościami zarządzanymi. Postępuj zgodnie z wytycznymi dotyczącymi rozpoczynania migracji elementów Runbook do korzystania z tożsamości zarządzanych. Aby uzyskać więcej informacji, zobacz przeprowadzanie migracji z istniejących kont Uruchom jako do tożsamości zarządzanej.
Elementy Runbook uruchamiane w hybrydowym procesie roboczym elementu Runbook zwykle zarządzają zasobami na komputerze lokalnym lub względem zasobów w środowisku lokalnym, w którym wdrożono proces roboczy. Elementy Runbook w usłudze Azure Automation zwykle zarządzają zasobami w chmurze platformy Azure. Mimo że są one używane inaczej, elementy Runbook uruchamiane w usłudze Azure Automation i elementy Runbook uruchamiane w hybrydowym procesie roboczym elementu Runbook są identyczne w strukturze.
Podczas tworzenia elementu Runbook do uruchamiania w hybrydowym procesie roboczym elementu Runbook należy edytować i przetestować element Runbook na maszynie, która hostuje proces roboczy. Maszyna hosta ma wszystkie moduły programu PowerShell i dostęp sieciowy wymagany do zarządzania zasobami lokalnymi. Po przetestowaniu elementu Runbook na maszynie hybrydowego procesu roboczego elementu Runbook możesz przekazać go do środowiska usługi Azure Automation, w którym można go uruchomić w procesie roboczym.
Planowanie usług platformy Azure chronionych przez zaporę
Włączenie usługi Azure Firewall w usłudze Azure Storage, usłudze Azure Key Vault lub usłudze Azure SQL blokuje dostęp z elementów Runbook usługi Azure Automation dla tych usług. Dostęp zostanie zablokowany nawet, gdy wyjątek zapory umożliwiający zezwolenie na zaufane usługi firmy Microsoft jest włączony, ponieważ usługa Automation nie jest częścią listy zaufanych usług. W przypadku włączonej zapory dostęp można uzyskać tylko przy użyciu hybrydowego procesu roboczego elementu Runbook i punktu końcowego usługi sieci wirtualnej.
Planowanie zachowania zadania elementu Runbook
Usługa Azure Automation obsługuje zadania w hybrydowych procesach roboczych elementów Runbook inaczej niż zadania uruchamiane w piaskownicach w chmurze. Jeśli masz długotrwały element Runbook, upewnij się, że jest odporny na możliwe ponowne uruchomienie. Aby uzyskać szczegółowe informacje o zachowaniu zadania, zobacz Zadania hybrydowego procesu roboczego elementu Runbook.
Konta usług
Hybrydowy proces roboczy systemu Windows
Zadania dla hybrydowych procesów roboczych elementów Runbook są uruchamiane na lokalnym koncie systemowym .
Uwaga
- W programach PowerShell 5.1, PowerShell 7.1 (wersja zapoznawcza), Python 2.7 i Python 3.8 elementy Runbook są obsługiwane zarówno w przypadku hybrydowych procesów roboczych elementów Runbook opartych na rozszerzeniach, jak i agentach. W przypadku procesów roboczych opartych na agencie upewnij się, że wersja hybrydowego procesu roboczego systemu Windows to 7.3.12960 lub nowsza.
- Elementy Runbook programu PowerShell 7.2 i Python 3.10 (wersja zapoznawcza) są obsługiwane tylko w przypadku hybrydowych procesów roboczych systemu Windows opartych na rozszerzeniach. Upewnij się, że rozszerzenie hybrydowego procesu roboczego systemu Windows ma wersję 1.1.11 lub nowszą.
Uwaga
Aby utworzyć zmienną środowiskową w systemach Windows, wykonaj następujące kroki:
- Przejdź do pozycji Panel sterowania> Ustawienia>zaawansowane systemu.
- W obszarze Właściwości systemu wybierz pozycję Zmienne środowiskowe.
- W obszarze Zmienne systemowe wybierz pozycję Nowy.
- Podaj nazwę zmiennej i wartość zmiennej, a następnie wybierz przycisk OK.
- Uruchom ponownie maszynę wirtualną lub wyloguj się z bieżącego użytkownika i zaloguj się, aby zaimplementować zmiany zmiennej środowiskowej.
PowerShell 7.2
Aby uruchomić elementy Runbook programu PowerShell 7.2 w hybrydowym procesie roboczym systemu Windows, zainstaluj program PowerShell w hybrydowym procesie roboczym. Zobacz Instalowanie programu PowerShell w systemie Windows.
Po zakończeniu instalacji programu PowerShell 7.2 utwórz zmienną środowiskową o nazwie zmiennej jako powershell_7_2_path i zmiennej jako lokalizację wykonywalnego programu PowerShell. Uruchom ponownie hybrydowy proces roboczy elementu Runbook po pomyślnym utworzeniu zmiennej środowiskowej.
PowerShell 7.1
Aby uruchomić elementy Runbook programu PowerShell 7.1 w hybrydowym procesie roboczym systemu Windows, zainstaluj program PowerShell w hybrydowym procesie roboczym. Zobacz Instalowanie programu PowerShell w systemie Windows. Pamiętaj, aby dodać plik programu PowerShell do zmiennej środowiskowej PATH i ponownie uruchomić hybrydowy proces roboczy elementu Runbook po zakończeniu instalacji.
Python 3.10
Aby uruchomić elementy Runbook języka Python 3.10 w hybrydowym procesie roboczym systemu Windows, zainstaluj język Python w hybrydowym procesie roboczym. Zobacz Instalowanie języka Python w systemie Windows.
Po zakończeniu instalacji języka Python 3.10 utwórz zmienną środowiskową o nazwie zmiennej jako python_3_10_path i wartości zmiennej jako lokalizację wykonywalnego języka Python. Uruchom ponownie hybrydowy proces roboczy elementu Runbook po pomyślnym utworzeniu zmiennej środowiskowej.
Python 3.8
Aby uruchomić elementy Runbook języka Python 3.8 w hybrydowym procesie roboczym systemu Windows, zainstaluj język Python w hybrydowym procesie roboczym. Zobacz Instalowanie języka Python w systemie Windows. Utwórz zmienną środowiskową PYTHON_3_PATH dla elementów Runbook języka Python 3.8 i upewnij się, że chcesz dodać lokalizację wykonywalnego języka Python jako wartość zmiennej. Uruchom ponownie hybrydowy proces roboczy elementu Runbook po pomyślnym utworzeniu zmiennej środowiskowej.
Jeśli plik wykonywalny języka Python znajduje się w domyślnej lokalizacji C:\WPy64-3800\python-3.8.0.amd64\python.exe, nie musisz tworzyć zmiennej środowiskowej.
Python 2.7
Aby uruchomić elementy Runbook języka Python 2.7 w hybrydowym procesie roboczym systemu Windows, zainstaluj język Python w hybrydowym procesie roboczym. Zobacz Instalowanie języka Python w systemie Windows. Utwórz zmienną środowiskową PYTHON_2_PATH dla elementów Runbook języka Python 2.7 i upewnij się, że chcesz dodać lokalizację pliku wykonywalnego języka Python jako wartość zmiennej. Uruchom ponownie hybrydowy proces roboczy elementu Runbook po pomyślnym utworzeniu zmiennej środowiskowej.
Jeśli plik wykonywalny języka Python znajduje się w domyślnej lokalizacji C:\Python27\python.exe, nie musisz tworzyć zmiennej środowiskowej.
Hybrydowy proces roboczy systemu Linux
Uwaga
- Program PowerShell 5.1, PowerShell 7.1 (wersja zapoznawcza), Python 2.7, elementy Runbook języka Python 3.8 są obsługiwane zarówno w hybrydowych procesach roboczych elementów Runbook opartych na rozszerzeniach, jak i agentach. W przypadku procesów roboczych opartych na agentach upewnij się, że hybrydowy proces roboczy elementu Runbook systemu Linux ma wersję 1.7.5.0 lub nowszą.
- Elementy Runbook programu PowerShell 7.2 i Python 3.10 (wersja zapoznawcza) są obsługiwane tylko w przypadku hybrydowych procesów roboczych systemu Linux opartych na rozszerzeniach. Upewnij się, że rozszerzenie hybrydowego procesu roboczego systemu Linux ma wersję 1.1.11 lub nowszą.
Uwaga
Aby utworzyć zmienną środowiskową w systemach Linux, wykonaj następujące kroki:
- Otwórz plik /etc/environment.
- Utwórz nową zmienną środowiskową, dodając VARIABLE_NAME="variable_value" w nowym wierszu w /etc/environment (VARIABLE_NAME jest nazwą nowej zmiennej środowiskowej i variable_value reprezentuje wartość, którą ma zostać przypisana).
- Uruchom ponownie maszynę wirtualną lub wyloguj się z bieżącego użytkownika i zaloguj się po zapisaniu zmian w /etc/environment, aby zaimplementować zmiany zmiennych środowiskowych.
PowerShell 7.2
Aby uruchomić elementy Runbook programu PowerShell 7.2 w hybrydowym procesie roboczym systemu Linux, zainstaluj plik programu PowerShell w hybrydowym procesie roboczym. Aby uzyskać więcej informacji, zobacz Instalowanie programu PowerShell w systemie Linux.
Po zakończeniu instalacji programu PowerShell 7.2 utwórz zmienną środowiskową o nazwie zmiennej jako powershell_7_2_path i wartości zmiennej jako lokalizację pliku wykonywalnego programu PowerShell . Uruchom ponownie hybrydowy proces roboczy elementu Runbook po pomyślnym utworzeniu zmiennej środowiskowej.
Python 3.10
Aby uruchomić elementy Runbook języka Python 3.10 w hybrydowym procesie roboczym systemu Linux, zainstaluj język Python w hybrydowym procesie roboczym. Aby uzyskać więcej informacji, zobacz Instalowanie języka Python 3.10 w systemie Linux.
Po zakończeniu instalacji języka Python 3.10 utwórz zmienną środowiskową o nazwie zmiennej jako python_3_10_path i wartość zmiennej jako lokalizację pliku wykonywalnego języka Python . Uruchom ponownie hybrydowy proces roboczy elementu Runbook po pomyślnym utworzeniu zmiennej środowiskowej.
Python 3.8
Aby uruchomić elementy Runbook języka Python 3.8 w hybrydowym procesie roboczym systemu Linux, zainstaluj język Python w hybrydowym procesie roboczym. Upewnij się, że po zakończeniu instalacji dodaj plik wykonywalny języka Python do zmiennej środowiskowej PATH i uruchom ponownie hybrydowy proces roboczy elementu Runbook.
Python 2.7
Aby uruchomić elementy Runbook języka Python 2.7 w hybrydowym procesie roboczym systemu Linux, zainstaluj język Python w hybrydowym procesie roboczym. Upewnij się, że po zakończeniu instalacji dodaj plik wykonywalny języka Python do zmiennej środowiskowej PATH i uruchom ponownie hybrydowy proces roboczy elementu Runbook.
Konfigurowanie uprawnień elementu Runbook
Zdefiniuj uprawnienia elementu Runbook do uruchamiania w hybrydowym procesie roboczym elementu Runbook w następujący sposób:
- Element runbook zapewnia własne uwierzytelnianie do zasobów lokalnych.
- Konfigurowanie uwierzytelniania przy użyciu tożsamości zarządzanych dla zasobów platformy Azure.
- Określ poświadczenia hybrydowego procesu roboczego, aby zapewnić kontekst użytkownika dla wszystkich elementów Runbook.
Używanie uwierzytelniania elementu Runbook do zasobów lokalnych
W przypadku przygotowywania elementu Runbook, który zapewnia własne uwierzytelnianie do zasobów, użyj zasobów poświadczeń i certyfikatów w elemecie Runbook. Istnieje kilka poleceń cmdlet, które umożliwiają określenie poświadczeń, aby element Runbook mógł uwierzytelniać się w różnych zasobach. W poniższym przykładzie pokazano część elementu Runbook, która uruchamia ponownie komputer. Pobiera poświadczenia z zasobu poświadczeń i nazwę komputera ze zmiennego zasobu, a następnie używa tych wartości z Restart-Computer
polecenia cmdlet .
$Cred = Get-AutomationPSCredential -Name "MyCredential"
$Computer = Get-AutomationVariable -Name "ComputerName"
Restart-Computer -ComputerName $Computer -Credential $Cred
Można również użyć działania InlineScript . InlineScript
umożliwia uruchamianie bloków kodu na innym komputerze z poświadczeniami.
Używanie uwierzytelniania elementu Runbook z tożsamościami zarządzanymi
Hybrydowe procesy robocze elementów Runbook na maszynach wirtualnych platformy Azure mogą używać tożsamości zarządzanych do uwierzytelniania w zasobach platformy Azure. Korzystanie z tożsamości zarządzanych dla zasobów platformy Azure zamiast kont Uruchom jako zapewnia korzyści, ponieważ nie trzeba:
- Wyeksportuj certyfikat Uruchom jako, a następnie zaimportuj go do hybrydowego procesu roboczego elementu Runbook.
- Odnów certyfikat używany przez konto Uruchom jako.
- Obsługa obiektu połączenia Uruchom jako w kodzie elementu Runbook.
Istnieją dwa sposoby używania tożsamości zarządzanych w hybrydowych skryptach procesu roboczego elementu Runbook.
Użyj przypisanej przez system tożsamości zarządzanej dla konta usługi Automation:
Skonfiguruj tożsamość zarządzaną przypisaną przez system dla konta usługi Automation.
Nadaj tej tożsamości wymagane uprawnienia w ramach subskrypcji, aby wykonać swoje zadanie.
Zaktualizuj element Runbook, aby używał polecenia cmdlet Connect-AzAccount za pomocą parametru
Identity
w celu uwierzytelniania w zasobach platformy Azure. Ta konfiguracja zmniejsza konieczność korzystania z konta Uruchom jako i wykonywania skojarzonego zarządzania kontami.# 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
Uwaga
Nie można użyć tożsamości zarządzanej użytkownika konta usługi Automation w hybrydowym procesie roboczym elementu Runbook. Musi to być tożsamość zarządzana przez system konta usługi Automation.
W przypadku maszyny wirtualnej platformy Azure działającej jako hybrydowy proces roboczy elementu Runbook użyj tożsamości zarządzanej maszyny wirtualnej. W takim przypadku można użyć przypisanej przez użytkownika tożsamości zarządzanej maszyny wirtualnej lub przypisanej przez system tożsamości zarządzanej maszyny wirtualnej.
Uwaga
Nie będzie to działać na koncie usługi Automation, które zostało skonfigurowane przy użyciu tożsamości zarządzanej konta usługi Automation. Gdy tylko tożsamość zarządzana konta usługi Automation jest włączona, nie jest już możliwe użycie tożsamości zarządzanej maszyny wirtualnej, a następnie możliwe jest użycie przypisanej przez system tożsamości zarządzanej konta usługi Automation zgodnie z opcją 1 powyżej.
Użyj dowolnej z następujących tożsamości zarządzanych:
- Tożsamość zarządzana przypisana przez system maszyny wirtualnej
- Tożsamość zarządzana przypisana przez użytkownika maszyny wirtualnej
- Skonfiguruj tożsamość zarządzaną systemu dla maszyny wirtualnej.
- Nadaj tej tożsamości wymagane uprawnienia w ramach subskrypcji, aby wykonywać swoje zadania.
- Zaktualizuj element Runbook, aby użyć polecenia cmdlet Connect-Az-Account z parametrem
Identity
w celu uwierzytelnienia w zasobach platformy Azure. Ta konfiguracja zmniejsza konieczność korzystania z konta Uruchom jako i wykonywania skojarzonego zarządzania kontami.
# 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
Serwer z obsługą usługi Arc lub maszyna wirtualna VMware vSphere z obsługą usługi Arc działająca jako hybrydowy proces roboczy elementu Runbook ma już przypisaną wbudowaną tożsamość zarządzaną systemu, która może być używana do uwierzytelniania.
Możesz udzielić tej tożsamości zarządzanej dostępu do zasobów w subskrypcji w bloku Kontrola dostępu (IAM) dla zasobu, dodając odpowiednie przypisanie roli.
Dodaj tożsamość zarządzaną usługi Azure Arc do wybranej roli zgodnie z potrzebami.
Uwaga
Nie będzie to działać na koncie usługi Automation, które zostało skonfigurowane przy użyciu tożsamości zarządzanej konta usługi Automation. Gdy tylko tożsamość zarządzana konta usługi Automation jest włączona, nie można już używać tożsamości zarządzanej usługi Arc, a następnie można używać tożsamości zarządzanej przypisanej przez system konta usługi Automation zgodnie z opcją 1 powyżej.
Uwaga
Domyślnie konteksty platformy Azure są zapisywane do użycia między sesjami programu PowerShell. Istnieje możliwość, że po uwierzytelnieniu poprzedniego elementu Runbook w hybrydowym procesie roboczym elementu Runbook na platformie Azure kontekst ten jest utrwalany na dysku w profilu programu System PowerShell zgodnie z kontekstami platformy Azure i poświadczeniami logowania | Microsoft Docs. Na przykład element Runbook z Get-AzVM
funkcją może zwrócić wszystkie maszyny wirtualne w subskrypcji bez wywołania Connect-AzAccount
metody , a użytkownik będzie mógł uzyskać dostęp do zasobów platformy Azure bez konieczności uwierzytelniania w ramach tego elementu Runbook. Automatyczne zapisywanie kontekstu można wyłączyć w programie Azure PowerShell, jak opisano tutaj.
Używanie uwierzytelniania elementu Runbook z poświadczeniami hybrydowego procesu roboczego
Wstępnie wymagane
- Hybrydowy proces roboczy powinien zostać wdrożony, a maszyna powinna być w stanie uruchomienia przed wykonaniem elementu Runbook.
Poświadczenia hybrydowego procesu roboczego zamiast posiadania elementu Runbook zapewniają własne uwierzytelnianie do zasobów lokalnych, można określić poświadczenia hybrydowego procesu roboczego dla hybrydowej grupy procesów roboczych elementu Runbook. Aby określić poświadczenia hybrydowego procesu roboczego, należy zdefiniować zasób poświadczeń, który ma dostęp do zasobów lokalnych. Te zasoby obejmują magazyny certyfikatów i wszystkie elementy Runbook uruchamiane w ramach tych poświadczeń w hybrydowym procesie roboczym elementu Runbook w grupie.
Nazwa użytkownika poświadczenia musi mieć jeden z następujących formatów:
- domena\nazwa użytkownika
- username@domain
- nazwa użytkownika (w przypadku kont lokalnych na komputerze lokalnym)
Aby użyć elementu Runbook Runbook Export-RunAsCertificateToHybridWorker, należy zainstalować moduły Az dla usługi Azure Automation na komputerze lokalnym.
Używanie zasobu poświadczeń dla grupy hybrydowych procesów roboczych elementu Runbook
Domyślnie zadania hybrydowe są uruchamiane w kontekście konta systemowego. Jednak aby uruchamiać zadania hybrydowe w ramach innego zasobu poświadczeń, wykonaj następujące kroki:
- Utwórz zasób poświadczeń z dostępem do zasobów lokalnych.
- Otwórz konto usługi Automation w witrynie Azure Portal.
- Wybierz pozycję Grupy hybrydowych procesów roboczych, a następnie wybierz określoną grupę.
- Wybierz pozycję Ustawienia.
- Zmień wartość poświadczeń hybrydowego procesu roboczego z Domyślne na Niestandardowe.
- Wybierz poświadczenie i kliknij przycisk Zapisz.
- Jeśli następujące uprawnienia nie są przypisane dla użytkowników niestandardowych, zadania mogą zostać zawieszone.
Typ zasobu | Uprawnienia do folderu |
---|---|
Maszyna wirtualna platformy Azure | C:\Packages\Plugins\Microsoft.Azure.Automation.HybridWorker.HybridWorkerForWindows (odczyt i wykonanie) |
Serwery z obsługą usługi Arc | C:\ProgramData\AzureConnectedMachineAgent\Tokens (odczyt) C:\Packages\Plugins\Microsoft.Azure.Automation.HybridWorker.HybridWorkerForWindows (odczyt i wykonanie) |
Uwaga
Hybrydowy proces roboczy systemu Linux nie obsługuje poświadczeń hybrydowego procesu roboczego.
Uruchamianie elementu Runbook w hybrydowym procesie roboczym elementu Runbook
Uruchamianie elementu Runbook w usłudze Azure Automation opisuje różne metody uruchamiania elementu Runbook. Uruchamianie elementu Runbook w hybrydowym procesie roboczym elementu Runbook używa opcji Uruchom w celu określenia nazwy grupy hybrydowych procesów roboczych elementu Runbook. Po określeniu grupy jeden z procesów roboczych w tej grupie pobiera i uruchamia element Runbook. Jeśli element Runbook nie określi tej opcji, usługa Azure Automation uruchamia element Runbook jak zwykle.
Po uruchomieniu elementu Runbook w witrynie Azure Portal zostanie wyświetlona opcja Uruchom w pozycji , dla której można wybrać pozycję Azure lub Hybrydowy proces roboczy. Wybierz pozycję Hybrydowy proces roboczy, aby wybrać grupę hybrydowych procesów roboczych elementu Runbook z listy rozwijanej.
Podczas uruchamiania elementu Runbook przy użyciu programu PowerShell użyj parametru RunOn
z poleceniem cmdlet Start-AzAutomationRunbook . W poniższym przykładzie użyto programu Windows PowerShell do uruchomienia elementu Runbook o nazwie Test-Runbook w grupie hybrydowych procesów roboczych elementu Runbook o nazwie MyHybridGroup.
Start-AzAutomationRunbook -AutomationAccountName "MyAutomationAccount" -Name "Test-Runbook" -RunOn "MyHybridGroup"
Praca z podpisanymi elementami Runbook w hybrydowym procesie roboczym elementu Runbook systemu Windows
Możesz skonfigurować hybrydowy proces roboczy elementu Runbook systemu Windows do uruchamiania tylko podpisanych elementów Runbook.
Ważne
Po skonfigurowaniu hybrydowego procesu roboczego elementu runbook pod kątem uruchamiania tylko podpisanych elementów runbook niepodpisane elementy runbook nie będą uruchamiane w tym procesie roboczym.
Uwaga
Program PowerShell 7.x nie obsługuje podpisanych elementów runbook dla hybrydowych procesów roboczych elementów runbook systemów Windows i Linux.
Tworzenie certyfikatu podpisywania
Poniższy przykład tworzy certyfikat z podpisem własnym, który może służyć do podpisywania elementów Runbook. Ten kod tworzy certyfikat i eksportuje go, aby hybrydowy proces roboczy elementu Runbook mógł go zaimportować później. Odcisk palca jest również zwracany do późniejszego użycia w odwołaniu się do certyfikatu.
# 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
Importowanie certyfikatu i konfigurowanie procesów roboczych na potrzeby weryfikacji podpisu
Skopiuj utworzony certyfikat do każdego hybrydowego procesu roboczego elementu Runbook w grupie. Uruchom następujący skrypt, aby zaimportować certyfikat i skonfigurować procesy robocze do używania walidacji podpisu w elementach Runbook.
# 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"
Podpisywanie elementów Runbook przy użyciu certyfikatu
W przypadku hybrydowych procesów roboczych elementów Runbook skonfigurowanych do używania tylko podpisanych elementów Runbook należy podpisać elementy Runbook, które mają być używane w hybrydowym procesie roboczym elementu Runbook. Użyj następującego przykładowego kodu programu PowerShell, aby podpisać te elementy Runbook.
$SigningCert = ( Get-ChildItem -Path cert:\LocalMachine\My\<CertificateThumbprint>)
Set-AuthenticodeSignature .\TestRunbook.ps1 -Certificate $SigningCert
Po podpisaniu elementu Runbook należy zaimportować go na konto usługi Automation i opublikować go przy użyciu bloku podpisu. Aby dowiedzieć się, jak importować elementy Runbook, zobacz Importowanie elementu Runbook.
Uwaga
Używaj tylko znaków w postaci zwykłego tekstu w kodzie elementu Runbook, w tym komentarzy. Użycie znaków ze znakami diakrytycznymi, takimi jak á lub ñ, spowoduje błąd. Gdy usługa Azure Automation pobierze kod, znaki zostaną zastąpione znakiem zapytania, a podpisywanie zakończy się niepowodzeniem z komunikatem "Niepowodzenie walidacji skrótu podpisu".
Praca z podpisanymi elementami Runbook w hybrydowym procesie roboczym elementu Runbook systemu Linux
Aby móc pracować z podpisanymi elementami Runbook, hybrydowy proces roboczy elementu Runbook systemu Linux musi mieć plik wykonywalny gpG na komputerze lokalnym.
Ważne
Po skonfigurowaniu hybrydowego procesu roboczego elementu runbook pod kątem uruchamiania tylko podpisanych elementów runbook niepodpisane elementy runbook nie będą uruchamiane w tym procesie roboczym.
Aby wykonać tę konfigurację, wykonaj następujące kroki:
- Tworzenie klucza grupy zarządzania zasadami grupy i klucza
- Udostępnianie kluczy hybrydowemu procesowi roboczemu elementu Runbook
- Sprawdź, czy weryfikacja podpisu jest włączona
- Podpisywanie elementu Runbook
Uwaga
- Program PowerShell 7.x nie obsługuje podpisanych elementów Runbook dla hybrydowego procesu roboczego elementu Runbook opartego na agencie i opartego na agencie.
- Podpisane elementy Runbook programu PowerShell i języka Python nie są obsługiwane w hybrydowych procesach roboczych systemu Linux opartych na rozszerzeniach.
Tworzenie klucza grupy zarządzania zasadami grupy i klucza
Uwaga
Tworzenie kluczy grupy zasad grupy i keypair mają zastosowanie tylko dla hybrydowych procesów roboczych opartych na agencie.
Aby utworzyć klucz grupy zasad grupy i kluczpair, użyj konta hybrydowego procesu roboczego elementu Runbook nxautomation.
Użyj aplikacji sudo, aby zalogować się jako konto nxautomation .
sudo su - nxautomation
Gdy używasz narzędzia nxautomation, wygeneruj klucz gpG jako katalog główny. Grupa zasad grupy przeprowadzi Cię przez kroki. Musisz podać nazwę, adres e-mail, czas wygaśnięcia i hasło. Następnie zaczekasz, aż na maszynie będzie wystarczająca ilość entropii, aby wygenerować klucz.
sudo gpg --generate-key
Ponieważ katalog GPG został wygenerowany za pomocą polecenia sudo, musisz zmienić jego właściciela na nxautomation przy użyciu następującego polecenia jako katalogu głównego.
sudo chown -R nxautomation ~/.gnupg
Udostępnianie kluczy hybrydowemu procesowi roboczemu elementu Runbook
Po utworzeniu klucza udostępnij go hybrydowemu procesowi roboczemu elementu Runbook. Zmodyfikuj plik ustawień home/nxautomation/state/worker.conf , aby uwzględnić następujący przykładowy kod w sekcji [worker-optional]
pliku .
gpg_public_keyring_path = /home/nxautomation/run/.gnupg/pubring.kbx
Sprawdź, czy weryfikacja podpisu jest włączona
Jeśli walidacja podpisu została wyłączona na maszynie, należy ją włączyć, uruchamiając następujące polecenie jako katalog główny. Zastąp <LogAnalyticsworkspaceId>
element identyfikatorem obszaru roboczego.
sudo python /opt/microsoft/omsconfig/modules/nxOMSAutomationWorker/DSCResources/MSFT_nxOMSAutomationWorkerResource/automationworker/scripts/require_runbook_signature.py --true <LogAnalyticsworkspaceId>
Podpisywanie elementu Runbook
Po skonfigurowaniu weryfikacji podpisu użyj następującego polecenia GPG, aby podpisać element Runbook.
gpg --clear-sign <runbook name>
Podpisany element Runbook nosi nazwę runbook name.asc>.<
Teraz możesz przekazać podpisany element Runbook do usługi Azure Automation i wykonać go jak zwykły element Runbook.
Rejestrowanie
Aby ułatwić rozwiązywanie problemów z elementami Runbook uruchomionymi w hybrydowym procesie roboczym elementu Runbook, dzienniki są przechowywane lokalnie w następującej lokalizacji:
W systemie Windows w
C:\ProgramData\Microsoft\System Center\Orchestrator\<version>\SMA\Sandboxes
celu uzyskania szczegółowego rejestrowania procesów czasu wykonywania zadań. Zdarzenia stanu zadania elementu Runbook wysokiego poziomu są zapisywane w dziennikach zdarzeń aplikacji i usług\Microsoft-Automation\Operations .W systemie Linux dzienniki hybrydowego procesu roboczego użytkownika można znaleźć w witrynie
/home/nxautomation/run/worker.log
, a dzienniki procesu roboczego elementu Runbook systemu można znaleźć w witrynie/var/opt/microsoft/omsagent/run/automationworker/worker.log
.
Następne kroki
- Aby uzyskać więcej informacji na temat hybrydowego procesu roboczego elementu Runbook, zobacz Automation Hybrid Runbook Worker (Hybrydowy proces roboczy elementu Runbook usługi Automation).
- Jeśli elementy Runbook nie kończą się pomyślnie, zapoznaj się z przewodnikiem rozwiązywania problemów z błędami wykonywania elementu Runbook.
- Aby uzyskać więcej informacji na temat programu PowerShell, w tym dokumentacji językowej i modułów szkoleniowych, zobacz PowerShell Docs.
- Dowiedz się więcej o korzystaniu z usługi Azure Policy do zarządzania wykonywaniem elementu Runbook za pomocą hybrydowych procesów roboczych elementu Runbook.
- Aby zapoznać się z dokumentacją poleceń cmdlet programu PowerShell, zobacz Az.Automation.