Spouštění runbooků Automation na Hybrid Runbook Worker
Sady Runbook, které běží na Hybrid Runbook Worker obvykle spravují prostředky v místním počítači nebo k prostředkům v místním prostředí, kde je pracovní proces nasazen. Runbooky v Azure Automation obvykle spravují prostředky v cloudu Azure. I když se používají jinak, Runbooky, které běží v Azure Automation a runbooky, které běží na Hybrid Runbook Worker, jsou identické ve struktuře.
Když vytváříte Runbook ke spuštění na Hybrid Runbook Worker, měli byste sadu Runbook upravit a otestovat na počítači, který je hostitelem pracovního procesu. Hostitelský počítač má všechny moduly PowerShellu a přístup k síti nutné ke správě místních prostředků. Po otestování Runbooku na Hybrid Runbook Worker počítači ho můžete nahrát do prostředí Azure Automation, kde ho můžete spustit na pracovním procesu.
Plánování služeb Azure chráněných bránou firewall
povolení Azure Firewall v Azure Storage, Azure Key Vaultnebo Azure SQL blokuje přístup k těmto službám z Azure Automation sad runbook. přístup se zablokuje i v případě, že je povolená výjimka brány firewall pro povolení důvěryhodných služby Microsoft, protože služba Automation není součástí seznamu důvěryhodných služeb. U povolené brány firewall se dá přístup provést jenom pomocí Hybrid Runbook Worker a koncového bodu služby virtuální sítě.
Plánování chování úlohy Runbooku
Azure Automation zpracovává úlohy pro procesy Hybrid Runbook Worker jinak než úlohy spuštěné v izolovaném prostoru Azure. Pokud máte dlouho běžící sadu Runbook, ujistěte se, že je možné restartovat počítač. Podrobnosti o chování úlohy najdete v tématu Hybrid Runbook Worker úlohy.
Service Accounts
Windows
Úlohy pro procesy Hybrid Runbook Worker běží pod účtem místního systému .
Poznámka
pokud chcete spustit powershell 7. x na Windows Hybrid Runbook Worker, přečtěte si téma instalace powershellu na Windows. V současné době podporujeme pouze registraci na základě rozšíření pro hybridní pracovní proces, jak je uvedeno zde.
Ujistěte se, že cesta, kde se nachází spustitelný soubor pwsh.exe , a je přidána do proměnné prostředí PATH. Po dokončení instalace restartujte Hybrid Runbook Worker.
Linux
Poznámka
Pokud chcete spustit PowerShell 7. x na Hybrid Runbook Worker pro Linux, přečtěte si téma instalace PowerShellu v systému Linux. V současné době podporujeme pouze registraci na základě rozšíření pro hybridní pracovní proces, jak je uvedeno zde.
Vytvoří se účty služby nxautomation a omsagent . Skript přiřazení pro vytváření a oprávnění lze zobrazit na adrese https://github.com/microsoft/OMS-Agent-for-Linux/blob/master/installer/datafiles/linux.data . Účty s odpovídajícími oprávněními sudo musí být k dispozici během instalace procesu Hybrid RunbookWorker pro Linux. Pokud se pokusíte nainstalovat pracovní proces a účet není přítomen nebo nemáte příslušná oprávnění, instalace se nezdařila. Neměňte oprávnění ke sudoers.d složce nebo jejímu vlastnictví. Pro účty se vyžaduje oprávnění sudo a oprávnění by se neměla odebrat. Omezení tohoto omezení na určité složky nebo příkazy může mít za následek zásadní změnu. Uživatel nxautomation povolený jako součást Update Management provádí pouze podepsané Runbooky.
Chcete-li zajistit, aby účty služby měly přístup k uloženým modulům sady Runbook:
- Když použijete
pip installapt installnebo jinou metodu instalace balíčků na Linux, ujistěte se, že je balíček nainstalovaný pro všechny uživatele. Příklad:sudo -H pip install <package_name>. - Pokud používáte PowerShell v systému Linux, je při použití rutiny install-Module nutné zadat
AllUsersScopeparametr.
Protokol služby Automation Worker se nachází na adrese /var/opt/microsoft/omsagent/run/automationworker/worker.log .
Účty služby se odeberou, když se počítač odebere jako Hybrid Runbook Worker.
Konfigurace oprávnění sady Runbook
Definujte oprávnění pro sadu Runbook pro spuštění na Hybrid Runbook Worker následujícími způsoby:
- Umožněte, aby sada Runbook poskytovala vlastní ověřování pro místní prostředky.
- Nakonfigurujte ověřování pomocí spravovaných identit pro prostředky Azure.
- Zadejte účet Spustit jako, který bude poskytovat kontext uživatele pro všechny sady Runbook.
Použití ověřování Runbooku pro místní prostředky
Pokud připravujete sadu Runbook, která poskytuje vlastní ověřování prostředků, použijte přihlašovací údaje a prostředky certifikátů v sadě Runbook. K dispozici je několik rutin, které vám umožní zadat přihlašovací údaje, aby se sada Runbook mohla ověřit u různých prostředků. Následující příklad ukazuje část sady Runbook, která restartuje počítač. Načítá přihlašovací údaje z assetu přihlašovacích údajů a název počítače z variabilního prostředku a pak tyto hodnoty používá s Restart-Computer rutinou.
$Cred = Get-AutomationPSCredential -Name "MyCredential"
$Computer = Get-AutomationVariable -Name "ComputerName"
Restart-Computer -ComputerName $Computer -Credential $Cred
Můžete také použít aktivitu InlineScript . InlineScript umožňuje spouštět bloky kódu na jiném počítači s přihlašovacími údaji.
Použití ověřování Runbooku u spravovaných identit
Hybridní pracovní procesy Runbooku na virtuálních počítačích Azure můžou použít spravované identity k ověřování prostředků Azure. Použití spravovaných identit pro prostředky Azure místo účtů spustit jako přináší výhody, protože nemusíte provádět tyto akce:
- Exportujte certifikát spustit jako a pak ho importujte do Hybrid Runbook Worker.
- Obnovte certifikát používaný účtem spustit jako.
- Zpracujte objekt připojení spustit jako v kódu Runbooku.
Postupujte podle dalších kroků a použijte spravovanou identitu pro prostředky Azure na Hybrid Runbook Worker:
Vytvořte virtuální počítač Azure.
Nakonfigurujte spravované identity pro prostředky Azure na virtuálním počítači. Další informace najdete v tématu Konfigurace spravovaných identit pro prostředky Azure na virtuálním počítači pomocí Azure Portal.
Udělte virtuálnímu počítači přístup ke skupině prostředků v Správce prostředků. pokud chcete získat přístup k Správce prostředků, přečtěte si téma použití spravované identity Windows přiřazené systémem virtuálních počítačů.
Nainstalujte na virtuální počítač Hybrid Runbook Worker. viz nasazení Windows Hybrid Runbook Worker nebo nasazení Hybrid Runbook Worker systému Linux.
aktualizujte sadu runbook tak, aby k ověření prostředků Azure použil rutinu Připojení-AzAccount s
Identityparametrem. Tato konfigurace omezuje nutnost použít účet Spustit jako a provede přidruženou správu účtů.# 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 NamePokud chcete, aby sada Runbook běžela se spravovanou identitou přiřazenou systémem, ponechte kód tak, jak je. Pokud dáváte přednost použití spravované identity přiřazené uživatelem, postupujte takto:
- Od řádku 5 odeberte
$AzureContext = (Connect-AzAccount -Identity).context, - Nahraďte parametrem
$AzureContext = (Connect-AzAccount -Identity -AccountId <ClientId>).contexta - Zadejte ID klienta.
- Od řádku 5 odeberte
Použití ověřování Runbooku s účtem spustit jako
Místo toho, aby sada Runbook poskytovala vlastní ověřování pro místní prostředky, můžete zadat účet Spustit jako pro skupinu Hybrid Runbook Worker. Chcete-li zadat účet Spustit jako, je nutné definovat Asset přihlašovacích údajů , který má přístup k místním prostředkům. Tyto prostředky zahrnují úložiště certifikátů a všechny sady Runbook běží pod těmito přihlašovacími údaji na Hybrid Runbook Worker ve skupině.
Uživatelské jméno pro přihlašovací údaje musí být v jednom z následujících formátů:
- jméno
- username@domain
- uživatelské jméno (pro účty místní k místnímu počítači)
Pokud chcete použít PowerShell PowerShell Export-RunAsCertificateToHybridWorker, musíte na místním počítači nainstalovat AZ modules for Azure Automation.
Použití assetu přihlašovacích údajů k určení účtu Spustit jako
K určení účtu Spustit jako pro skupinu Hybrid Runbook Worker použijte následující postup:
- Vytvořte Asset přihlašovacích údajů s přístupem k místním prostředkům.
- Otevřete účet Automation v Azure Portal.
- Vyberte Hybrid Worker skupiny a pak vyberte konkrétní skupinu.
- Vyberte všechna nastavení a potom Nastavení skupiny hybridních pracovních procesů.
- Změňte hodnotu Spustit jako z výchozí na Custom ( vlastní).
- Vyberte přihlašovací údaje a klikněte na Uložit.
Nainstalovat certifikát účtu Spustit jako
Jako součást procesu automatizovaného sestavování pro nasazení prostředků v Azure můžete vyžadovat přístup k místním systémům pro podporu úlohy nebo sady kroků v sekvenci nasazení. Chcete-li zajistit ověřování v Azure pomocí účtu Spustit jako, je nutné nainstalovat certifikát účtu Spustit jako.
Poznámka
Tento Runbook PowerShellu v tuto chvíli neběží na počítačích se systémem Linux. spouští se jenom na počítačích s Windows.
Následující PowerShellový Runbook s názvem Export-RunAsCertificateToHybridWorker exportuje certifikát spustit jako z účtu Azure Automation. Sada Runbook stáhne a importuje certifikát do úložiště certifikátů místního počítače na Hybrid Runbook Worker, která je připojena ke stejnému účtu. Jakmile tento krok dokončí, sada Runbook ověří, že se pracovní proces může úspěšně ověřit v Azure pomocí účtu Spustit jako.
Poznámka
Tento PowerShellový Runbook není navržený nebo nemá být spuštěný mimo účet Automation jako skript na cílovém počítači.
<#PSScriptInfo
.VERSION 1.0
.GUID 3a796b9a-623d-499d-86c8-c249f10a6986
.AUTHOR Azure Automation Team
.COMPANYNAME Microsoft
.COPYRIGHT
.TAGS Azure Automation
.LICENSEURI
.PROJECTURI
.ICONURI
.EXTERNALMODULEDEPENDENCIES
.REQUIREDSCRIPTS
.EXTERNALSCRIPTDEPENDENCIES
.RELEASENOTES
#>
<#
.SYNOPSIS
Exports the Run As certificate from an Azure Automation account to a hybrid worker in that account.
.DESCRIPTION
This runbook exports the Run As certificate from an Azure Automation account to a hybrid worker in that account. Run this runbook on the hybrid worker where you want the certificate installed. This allows the use of the AzureRunAsConnection to authenticate to Azure and manage Azure resources from runbooks running on the hybrid worker.
.EXAMPLE
.\Export-RunAsCertificateToHybridWorker
.NOTES
LASTEDIT: 2016.10.13
#>
# Generate the password used for this certificate
Add-Type -AssemblyName System.Web -ErrorAction SilentlyContinue | Out-Null
$Password = [System.Web.Security.Membership]::GeneratePassword(25, 10)
# Stop on errors
$ErrorActionPreference = 'stop'
# Get the management certificate that will be used to make calls into Azure Service Management resources
$RunAsCert = Get-AutomationCertificate -Name "AzureRunAsCertificate"
# location to store temporary certificate in the Automation service host
$CertPath = Join-Path $env:temp "AzureRunAsCertificate.pfx"
# Save the certificate
$Cert = $RunAsCert.Export("pfx",$Password)
Set-Content -Value $Cert -Path $CertPath -Force -Encoding Byte | Write-Verbose
Write-Output ("Importing certificate into $env:computername local machine root store from " + $CertPath)
$SecurePassword = ConvertTo-SecureString $Password -AsPlainText -Force
Import-PfxCertificate -FilePath $CertPath -CertStoreLocation Cert:\LocalMachine\My -Password $SecurePassword | Write-Verbose
Remove-Item -Path $CertPath -ErrorAction SilentlyContinue | Out-Null
# Test to see if authentication to Azure Resource Manager is working
$RunAsConnection = Get-AutomationConnection -Name "AzureRunAsConnection"
Connect-AzAccount `
-ServicePrincipal `
-Tenant $RunAsConnection.TenantId `
-ApplicationId $RunAsConnection.ApplicationId `
-CertificateThumbprint $RunAsConnection.CertificateThumbprint | Write-Verbose
Set-AzContext -Subscription $RunAsConnection.SubscriptionID | Write-Verbose
# List automation accounts to confirm that Azure Resource Manager calls are working
Get-AzAutomationAccount | Select-Object AutomationAccountName
Poznámka
Pro PowerShellové Runbooky Add-AzAccount a Add-AzureRMAccount jsou aliasy pro Connect-AzAccount . Pokud při prohledávání položek knihovny nevidíte , můžete použít nebo aktualizovat moduly ve Connect-AzAccount Add-AzAccount svém účtu Automation.
Příprava účtu Spustit jako dokončíte takto:
- Uložte runbook Export-RunAsCertificateToHybridWorker do počítače s .ps1 rozšířením.
- Naimportujte ho do svého účtu Automation.
- Upravte runbook a změň hodnotu
Passwordproměnné na vlastní heslo. - Publikujte runbook.
- Spusťte runbook cílením na skupinu Hybrid Runbook Worker, která spouští a ověřuje runbooky pomocí účtu Spustit jako.
- Prozkoumejte datový proud úlohy a podívejte se, jestli hlásí pokus o import certifikátu do úložiště místního počítače následovaný několika řádky. Toto chování závisí na tom, kolik účtů Automation definujete ve svém předplatném a na stupni úspěšnosti ověřování.
Poznámka
V případě neomezeného přístupu může uživatel s právy přispěvatele virtuálních počítačů nebo s oprávněními ke spouštění příkazů na počítači hybrid worker používat certifikát Účtu Automation Spustit jako z počítače hybrid worker, a to pomocí jiných zdrojů, jako jsou rutiny Azure, které by potenciálně mohly umožnit uživateli se zlými úmysly přístup jako přispěvatel předplatného. To by mohlo ohrozit zabezpečení vašeho prostředí Azure. Doporučujeme rozdělit úkoly v rámci týmu a udělit uživatelům požadovaná oprávnění a přístup podle jejich práce. Nezadáte neomezená oprávnění k počítači, který je hostitelem role hybrid runbook worker.
Práce s podepsaných runbooky na Windows Hybrid Runbook Worker
Můžete nakonfigurovat konfiguraci Windows Hybrid Runbook Worker, aby spouštěl pouze podepsané runbooky.
Důležité
Po nakonfigurování sady runbook Hybrid Runbook Worker jenom podepsané runbooky, nepodepsané runbooky se v pracovním procesu nepodaří spustit.
Poznámka
PowerShell 7.x nepodporuje podepsané runbooky pro Windows a Linux Hybrid Runbook Worker.
Vytvoření podpisového certifikátu
Následující příklad vytvoří certifikát podepsaný svým držitelem, který lze použít k podepisování runbooků. Tento kód vytvoří certifikát a exportuje ho, aby ho Hybrid Runbook Worker mohl později importovat. Kryptografický otisk se také vrátí pro pozdější použití při odkazování na certifikát.
# 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
Import certifikátu a konfigurace pracovních procesů pro ověřování podpisů
Zkopírujte certifikát, který jste vytvořili, do každé Hybrid Runbook Worker ve skupině. Spuštěním následujícího skriptu importujte certifikát a nakonfigurujte pracovní proces tak, aby v runboocích používat ověřování podpisu.
# 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"
Podepisovat runbooky pomocí certifikátu
Když jsou funkce Hybrid Runbook Worker nakonfigurované tak, aby používaly jenom podepsané runbooky, musíte podepisovat runbooky, které se mají používat v Hybrid Runbook Worker. K podepsání těchto runbooků použijte následující ukázkový kód PowerShellu.
$SigningCert = ( Get-ChildItem -Path cert:\LocalMachine\My\<CertificateThumbprint>)
Set-AuthenticodeSignature .\TestRunbook.ps1 -Certificate $SigningCert
Po podepsání runbooku ho musíte importovat do svého účtu Automation a publikovat ho s blokem podpisu. Informace o importu runbooků najdete v tématu Import runbooku.
Poznámka
V kódu runbooku používejte jenom znaky prostého textu včetně komentářů. Použití znaků s diakritickými znaménky, jako je á nebo ñ, bude mít za následek chybu. Když Azure Automation stáhnete kód, znaky se nahradí otazníkem a podepisování selže se zprávou o chybě ověření hodnoty hash podpisu.
Práce s podepsaných runbooky na linuxovém Hybrid Runbook Worker
Aby bylo možné pracovat s podepsaných runbooky, musí Hybrid Runbook Worker mít spustitelný soubor GPG na místním počítači.
Důležité
Po nakonfigurování sady runbook Hybrid Runbook Worker jenom podepsané runbooky, nepodepsané runbooky se v pracovním procesu nepodaří spustit.
K dokončení této konfigurace provedete následující kroky:
- Vytvoření klíčence GPG a páru klíčů
- Získejte klíčovou klíčovou klíčovou Hybrid Runbook Worker
- Ověřte, že je ověřování podpisu v systému .
- Podepsání runbooku
Poznámka
PowerShell 7.x nepodporuje podepsané runbooky pro Windows a Linux Hybrid Runbook Worker.
Vytvoření klíčence GPG a páru klíčů
K vytvoření klíčence GPG a klíčence použijte Hybrid Runbook Worker nxautomation.
Pomocí aplikace sudo se přihlaste jako účet nxautomation.
sudo su - nxautomationJakmile používáte nxautomation, vygenerujte klíč GPG. Průvodce gg vás provede postupem. Musíte zadat jméno, e-mailovou adresu, čas vypršení platnosti a heslo. Potom počkejte, dokud na počítači nebude dostatek entropie, aby se klíč vygeneroval.
sudo gpg --generate-keyVzhledem k tomu, že se adresář GPG vygeneroval pomocí příkazu sudo, musíte jeho vlastníka změnit na nxautomation pomocí následujícího příkazu.
sudo chown -R nxautomation ~/.gnupg
Získejte klíčovou klíčovou klíčovou Hybrid Runbook Worker
Jakmile je klíčová třída vytvořená, získejte ji k dispozici Hybrid Runbook Worker. Upravte soubor nastavení home/nxautomation/state/worker.conf tak, aby v části souboru zahrnoval následující příklad [worker-optional] kódu.
gpg_public_keyring_path = /home/nxautomation/run/.gnupg/pubring.kbx
Ověřte, že je ověřování podpisu v systému .
Pokud bylo ověření podpisu na počítači zakázané, musíte ho zapnout spuštěním následujícího příkazu sudo. Nahraďte <LogAnalyticsworkspaceId> SVÝM ID pracovního prostoru.
sudo python /opt/microsoft/omsconfig/modules/nxOMSAutomationWorker/DSCResources/MSFT_nxOMSAutomationWorkerResource/automationworker/scripts/require_runbook_signature.py --true <LogAnalyticsworkspaceId>
Podepsání runbooku
Po nakonfigurování ověření podpisu použijte k podepsání runbooku následující příkaz GPG.
gpg --clear-sign <runbook name>
Podepsaný runbook se nazývá <runbook name> .asc.
Podepsaný runbook teď můžete nahrát do Azure Automation a spustit ho jako běžný runbook.
Spuštění runbooku na Hybrid Runbook Worker
Spuštění runbooku v Azure Automation popisuje různé metody spuštění runbooku. Spuštění runbooku v Hybrid Runbook Worker používá možnost Spustit v, která umožňuje zadat název skupiny Hybrid Runbook Worker počítače. Když je zadaná skupina, jeden z pracovních procesů v této skupině runbook načte a spustí. Pokud váš runbook tuto možnost nezadá, Azure Automation runbook spustí jako obvykle.
Když spustíte runbook v Azure Portal, zobrazí se možnost Spustit při, pro kterou můžete vybrat Azure nebo Hybrid Worker. Pokud vyberete Hybrid Worker, můžete zvolit skupinu Hybrid Runbook Worker z rozevíracího seznamu.
Při spouštění runbooku pomocí PowerShellu použijte RunOn parametr s rutinou Start-AzAutomationRunbook. Následující příklad používá Windows PowerShell runbook s názvem Test-Runbook ve skupině Hybrid Runbook Worker s názvem MyHybridGroup.
Start-AzAutomationRunbook -AutomationAccountName "MyAutomationAccount" -Name "Test-Runbook" -RunOn "MyHybridGroup"
protokolování
Protokoly se ukládají místně v následujícím umístění, aby vám pomohly s odstraňováním potíží s runbooky spuštěných v procesu Hybrid Runbook Worker:
Podrobné Windows procesu modulu runtime úlohy najdete na adrese
C:\ProgramData\Microsoft\System Center\Orchestrator\<version>\SMA\Sandboxes. Události stavu úlohy runbooku vysoké úrovně se zapisou do protokolu událostí Application and Services Logs\Microsoft-Automation\Operations.V Linuxu najdete protokoly uživatele Hybrid Worker na adrese a protokoly pracovního procesu
/home/nxautomation/run/worker.logsystémového runbooku najdete na adrese/var/opt/microsoft/omsagent/run/automationworker/worker.log.
Další kroky
- Pokud se runbooky nedokončí úspěšně, v průvodci odstraňováním potíží zkontrolujte selhání spuštění runbooku.
- Další informace o PowerShellu, včetně referenčních jazyků a výukových modulů, najdete v tématu Dokumentace k PowerShellu.
- Přečtěte si o použití Azure Policy ke správě spouštění runbooků pomocí hybrid runbook workerů.
- Referenční informace k rutině PowerShellu najdete v tématu Az.Automation.