Hybrid Runbook Worker で Automation Runbook を実行する

通常、Hybrid Runbook Worker で実行する Runbook では、ローカル コンピューター上のリソース、または worker がデプロイされているローカル環境内のリソースを管理します。 Azure Automation の Runbook は、通常、Azure クラウド内のリソースを管理します。 Azure Automation で実行される Runbook と、Hybrid Runbook Worker で実行される Runbook は、使い方は異なりますが、構造的には同じものです。

Hybrid Runbook Worker で実行される Runbook を作成するときは、worker がホストされているマシンで Runbook を編集し、テストする必要があります。 ホスト マシンには、ローカル リソースの管理のために必要な、すべての PowerShell モジュールとネットワーク アクセスがあります。 Hybrid Runbook Worker マシンで Runbook をテストした後は、それを Azure Automation 環境にアップロードし、worker で実行できます。

ファイアウォールによって保護された Azure サービスの計画

Azure StorageAzure Key Vault、または Azure SQL で Azure Firewall を有効にすると、それらのサービスの Azure Automation Runbook からのアクセスがブロックされます。 信頼される Microsoft サービスを許可するファイアウォール例外が有効になっている場合でも、Automation は信頼されるサービス一覧に含まれていないため、アクセスはブロックされます。 ファイアウォールが有効になっている場合、アクセスは、Hybrid Runbook Worker と仮想ネットワーク サービス エンドポイントを使用して行う必要があります。

Runbook ジョブの動作を計画する

Azure Automation による Hybrid Runbook Worker でのジョブの処理は、Azure サンドボックスで実行されるジョブとは異なります。 実行時間の長い Runbook がある場合、起こりうる再起動に対して回復性があることを確認します。 ジョブの動作の詳細については、「Hybrid Runbook Worker ジョブ」を参照してください。

サービス アカウント

Windows

Hybrid Runbook Worker のジョブは、ローカルのシステム アカウントで実行されます。

Note

Windows Hybrid Runbook Worker で PowerShell 7.x を実行するには、「Windows への PowerShell のインストール」をご覧ください。 ハイブリッド worker 拡張機能ベースエージェント ベースのオンボードがサポートされています。 エージェント ベースのオンボードの場合は、Windows Hybrid Runbook worker バージョンが 7.3.1296.0 以上である必要があります。

pwsh.exe 実行可能ファイルのあるパスが PATH 環境変数に追加されていることを確認してください。 インストールが完了した後、Hybrid Runbook Worker を再起動してください。

Linux

Note

Linux Hybrid Runbook Worker で PowerShell 7.x を実行するには、「Linux への PowerShell のインストール」をご覧ください。 ハイブリッド worker 拡張機能ベースエージェント ベースのオンボードがサポートされています。 エージェント ベースのオンボードの場合は、Linux Hybrid Runbook worker バージョンが 1.7.5.0 以上である必要があります。

サービス アカウント nxautomationomsagent が作成されます。 作成およびアクセス許可の割り当てスクリプトは、https://github.com/microsoft/OMS-Agent-for-Linux/blob/master/installer/datafiles/linux.data で確認できます。 Linux Hybrid Runbook Worker のインストール中には、対応する sudo アクセス許可を持つアカウントが存在する必要があります。 ワーカーをインストールしようとしたときに、このアカウントが存在しないか、または適切なアクセス許可を持っていない場合、そのインストールは失敗します。 sudoers.d フォルダーまたはその所有権のアクセス許可は変更しないでください。 sudo アクセス許可はアカウントに必要であるため、アクセス許可を削除しないでください。 これを特定のフォルダーまたはコマンドに制限すると、破壊的変更が発生する可能性があります。 Update Management の一環として有効にされた nxautomation ユーザーによって実行されるのは、署名済みの Runbook のみです。

格納されている Runbook モジュールにサービス アカウントから確実にアクセスできるようにするには:

  • Linux でのパッケージのインストールに pip installapt install、またはその他の方法を使用する場合、すべてのユーザーにパッケージがインストールされていることを確認してください。 たとえば、「 sudo -H pip install <package_name> 」のように指定します。
  • Linux で PowerShell を使用している場合は、Install-Module コマンドレットを使用するとき、Scope パラメーターに対して必ず AllUsers を指定してください。

Automation ワーカー ログは /var/opt/microsoft/omsagent/run/automationworker/worker.log にあります。

サービス アカウントは、マシンが Hybrid Runbook Worker として削除された時点で削除されます。

Runbook のアクセス許可を構成する

Hybrid Runbook Worker で実行する Runbook Worker のアクセス許可は、次の方法で定義します。

  • ローカル リソースに対して Runbook 独自の認証が提供されるようにします。
  • Azure リソースのマネージド ID を使用して認証を構成します。
  • すべての Runbook にユーザー コンテキストを提供する実行アカウントを指定します。

ローカル リソースに Runbook 認証を使用する

リソースへの独自の認証方法を使用する Runbook を準備する場合は、Runbook の資格情報資産と証明書資産を使用します。 Runbook を使用して異なるリソースに対して認証できるように、資格情報を指定できるコマンドレットがいくつかあります。 次の例は、コンピューターを再起動する Runbook の一部を示しています。 資格情報資産から資格情報を取得し、変数資産からはコンピューター名を取得して、Restart-Computer コマンドレットでこれらの値を使用します。

$Cred = Get-AutomationPSCredential -Name "MyCredential"
$Computer = Get-AutomationVariable -Name "ComputerName"

Restart-Computer -ComputerName $Computer -Credential $Cred

また、InlineScript アクティビティを使用することもできます。 InlineScript では、資格情報を使用して別のコンピューターでコード ブロックを実行することができます。

マネージド ID で Runbook 認証を使用する

Azure Virtual Machines 上の Hybrid Runbook Worker では、マネージド ID を使って、Azure リソースに対する認証を行うことができます。 実行アカウントの代わりに Azure リソースのマネージド ID を使うと、次のことを行う必要がないという利点があります。

  • 実行アカウントの証明書をエクスポートし、それを Hybrid Runbook Worker にインポートする。
  • 実行アカウントで使用される証明書を更新する。
  • Runbook のコードで実行アカウントの接続オブジェクトを処理する。

Hybrid Runbook Worker スクリプトでマネージド ID を使用するには、2 つの方法があります。

  1. Automation アカウント用のシステム割り当てマネージド ID を使用する:

    1. Automation アカウント用のシステム割り当てマネージド ID を構成します。

    2. この ID に、タスクを実行するためにサブスクリプション内で必要なアクセス許可を付与します。

    3. Connect-AzAccount コマンドレットと Identity パラメーターを使用して Azure リソースに対する認証を行うように、Runbook を更新します。 この構成により、実行アカウントを使用し、関連するアカウントを管理を実行する必要性が減ります。

      # 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
      

    注意

    Hybrid Runbook Worker で Automation アカウントのユーザー マネージド ID を使用することはできません。これは、Automation アカウントのシステム マネージド ID である必要があります。

  2. Hybrid Runbook Worker として実行されている Azure VM の場合は、VM マネージド ID を使用します。 この場合は、VM のユーザー割り当てマネージド ID または VM のシステム割り当てマネージド ID のいずれかを使用できます。

    注意

    これは、Automation アカウントのマネージド ID で構成されている Automation アカウントでは機能しません。 Automation アカウントのマネージド ID が有効になるとすぐに、VM マネージド ID を使用することはできなくなります。その後、上記のオプション 1 で説明したように、Automation アカウントのシステム割り当てマネージド ID のみを使用できます。

    次のいずれかのマネージド ID を使用します。

    1. VM 用のシステム マネージド ID を構成します。
    2. この ID に、タスクを実行するためにサブスクリプション内で必要なアクセス許可を付与します。
    3. Connect-Az-Account コマンドレットと Identity パラメーターを使用して Azure リソースに対する認証を行うように、Runbook を更新します。 この構成により、実行アカウントを使用し、関連するアカウントの管理を行う必要性が減ります。
        # 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   
    

Hybrid Runbook Worker として実行されている Arc 対応サーバーには、認証に使用できる組み込みのシステム マネージド ID が既に割り当てられます。

  1. 適切なロールの割り当てを追加することで、リソースのアクセス制御 (IAM) ブレードで、サブスクリプション内のリソースへのアクセス権をこのマネージド ID に付与できます。

    Screenshot of how to select managed identities.

  2. 必要に応じて、選択したロールに Azure Arc マネージド ID を追加します。

    Screenshot of how to add role assignment in the Access control blade.

注意

これは、Automation アカウントのマネージド ID で構成されている Automation アカウントでは機能しません。 Automation アカウントのマネージド ID が有効になるとすぐに、Arc マネージド ID を使用することはできなくなります。その後、上記のオプション 1 で説明したように、Automation アカウントのシステム割り当てマネージド ID のみを使用できます。

Note

既定では、Azure コンテキストは、PowerShell セッション間で使用するために保存されます。 Hybrid Runbook Worker 上の以前の Runbook が Azure で認証されている場合、そのコンテキストは、Azure コンテキストとサインイン資格情報|Microsoft Docsに従って System PowerShell プロファイル内のディスクに保持される可能性があります。たとえば、Get-AzVM を持つ Runbook は、Connect-AzAccountを呼び出さずにサブスクリプション内のすべての VM を返すことができ、ユーザーはその Runbook 内で認証しなくても Azure リソースにアクセスできます。 Azure PowerShell でコンテキストの自動保存を無効にすることができます。詳細は こちらに記載されています。

ハイブリッド worker 資格情報による Runbook 認証を使用する

Runbook でローカル リソースに独自の認証を提供するのではなく、Hybrid Runbook Worker グループに対してハイブリッド worker 資格情報を指定することができます。 ハイブリッド worker 資格情報を指定するには、ローカル リソースにアクセスできる資格情報資産を定義する必要があります。 これらのリソースには証明書ストアが含まれており、すべての Runbook はグループ内の Hybrid Runbook Worker 上でこれらの資格情報を使用して実行されます。

  • 資格情報のユーザー名は、次の形式にする必要があります。

    • ドメイン\ユーザー名
    • username@domain
    • ユーザー名 (オンプレミス コンピューターのローカルのアカウントの場合)
  • PowerShell Runbook Export-RunAsCertificateToHybridWorker を使用するには、ローカル コンピューターに Azure Automation 用 Az モジュールをインストールする必要があります。

Hybrid Runbook Worker グループに資格情報資産を使用する

既定では、ハイブリッド ジョブはシステム アカウントのコンテキストで実行されます。 ただし、別の資格情報資産でハイブリッド ジョブを実行するには、次の手順に従います。

  1. ローカル リソースに対するアクセス権を持つ 資格情報資産 を作成します。
  2. Azure ポータルで Automation アカウントを開きます。
  3. [ハイブリッド Worker グループ] を選択し、特定のグループを選択します。
  4. [設定] を選択します。
  5. [Hybrid Worker credentials](ハイブリッド worker 資格情報) の値を [既定] から [カスタム] に変更します。
  6. 資格情報を選択し、 [保存] をクリックします。
  7. カスタム ユーザーに対して次のアクセス許可が割り当てられないと、ジョブが中断される可能性があります。 次のレジストリ キー/フォルダーに対応する管理者特権のアクセス許可の割り当ては、ご自身の裁量で行います。

レジストリ パス

  • HKLM\SYSTEM\CurrentControlSet\Services\EventLog (読み取り)
  • HKLM\SYSTEM\CurrentControlSet\Services\WinSock2\Parameters (フル アクセス)
  • HKLM\SOFTWARE\Microsoft\Wbem\CIMOM (フル アクセス)
  • HKLM\Software\Policies\Microsoft\SystemCertificates\Root (フル アクセス)
  • HKLM\Software\Microsoft\SystemCertificates (フル アクセス)
  • HKLM\Software\Microsoft\EnterpriseCertificates (フル アクセス)
  • HKLM\software\Microsoft\HybridRunbookWorker (フル アクセス)
  • HKLM\software\Microsoft\HybridRunbookWorkerV2 (フル アクセス)
  • HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\SystemCertificates\Disallowed (フル アクセス)
  • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\PnpLockdownFiles (フル アクセス)

フォルダー

  • C:\ProgramData\AzureConnectedMachineAgent\Tokens (読み取り)
  • C:\Packages\Plugins\Microsoft.Azure.Automation.HybridWorker.HybridWorkerForWindows\0.1.0.18\HybridWorkerPackage\HybridWorkerAgent (フル アクセス)

実行アカウントの証明書のインストール

Azure にリソースをデプロイするために自動ビルド プロセスの一部として、デプロイ シーケンスでタスクまたは一連の手順をサポートするために、オンプレミスのシステムにアクセスすることが必要になる場合があります。 実行アカウントを使用して Azure に対する認証を提供するには、実行アカウントの証明書をインストールする必要があります。

Note

この PowerShell Runbook は、現在、Linux マシン上では実行されません。 Windows マシンでのみ実行されます。

次に示す Export-RunAsCertificateToHybridWorker という名前の PowerShell Runbook では、Azure Automation アカウントから実行アカウントの証明書がエクスポートされます。 この Runbook では、証明書がダウンロードされて、同じアカウントに接続された Hybrid Runbook Worker 上のローカル コンピューター証明書ストアにインポートされます。 そのステップが完了した後、Runbook では、worker が実行アカウントを使用して Azure に対する認証を正常に実行できることが確認されます。

Note

この PowerShell Runbook は、Automation アカウントの外では、ターゲット コンピューター上でスクリプトとして実行するようには設計も意図もされていません。

<#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

Note

PowerShell Runbook の場合、Add-AzAccountAdd-AzureRMAccountConnect-AzAccount の別名です。 ライブラリ項目を検索して Connect-AzAccount が表示されない場合は、Add-AzAccount を使用するか、Automation アカウントでモジュールを更新することができます。

実行アカウントの準備を完了するには、次のようにします。

  1. Export-RunAsCertificateToHybridWorker Runbook を、 .ps1 という拡張子でコンピューターに保存します。
  2. それをお使いの Automation アカウントにインポートします。
  3. Runbook を編集し、Password 変数の値をご自身のパスワードに変更します。
  4. Runbook を発行します。
  5. 実行アカウントを使用して Runbook の実行と認証を行う Hybrid Runbook Worker グループを対象に、Runbook を実行します。
  6. ジョブ ストリームを調べて、ローカル コンピューターのストアへの証明書のインポートの試行が報告された後に複数の行があることを確認します。 この動作は、サブスクリプションで定義されている Automation アカウントの数と、認証がどの程度成功したかによって異なります。

Note

アクセスが制限されない場合、VM 共同作成者権限を持つユーザー、またはハイブリッド ワーカー マシンに対してコマンドを実行するためのアクセス許可を持つユーザーは、Azure コマンドレットなどの他のソースを使用して、ハイブリッド ワーカー マシンから Automation Account Run As 証明書を使用できます。この場合、悪意のあるユーザーがサブスクリプション共同作成者としてアクセスできる可能性があります。 これにより、Azure 環境のセキュリティが危険にさらされる可能性があります。

チーム内のタスクを分割し、ユーザーに対する必要なアクセス許可とアクセス権をジョブごとに付与することをお勧めします。 ハイブリッド runbook worker ロールをホストしているマシンに無制限のアクセス許可を付与しないでください。

Hybrid Runbook Worker での Runbook の開始

Azure Automation での Runbook の開始」では、Runbook を開始するさまざまな方法が説明されています。 Hybrid Runbook Worker で Runbook を起動すると、Hybrid Runbook Worker グループの名前を指定できる Run on オプションが使用されます。 グループを指定すると、そのグループ内の worker の 1 つによって Runbook が取得されて実行されます。 Runbook でこのオプションが指定されていない場合は、Azure Automation によって通常どおり Runbook が実行されます。

Azure portal で Runbook を開始するときは、 [実行場所を選択して実行] オプションで [Azure] または [ハイブリッド worker] を選択できます。 [ハイブリッド Worker] を選択し、ドロップダウンから Hybrid Runbook Worker グループを選択します。

Screenshot showing how to select the Hybrid Runbook Worker group.

PowerShell を使用して Runbook を開始する場合は、RunOn パラメーターを Start-AzAutomationRunbook コマンドレットで使用します。 次の例では、Windows PowerShell を使用して、MyHybridGroup という名前の Hybrid Runbook Worker グループで Test-Runbook という名前の Runbook を開始しています。

Start-AzAutomationRunbook -AutomationAccountName "MyAutomationAccount" -Name "Test-Runbook" -RunOn "MyHybridGroup"

Windows Hybrid Runbook Worker での署名済み Runbook の使用

署名された Runbook のみを実行するように Windows Hybrid Runbook Worker を構成できます。

重要

署名された Runbook のみを実行するように Hybrid Runbook Worker を構成すると、署名されていない Runbook は worker で実行できなくなります。

Note

PowerShell 7.x では、Windows および Linux Hybrid Runbook Worker について、署名された Runbook はサポートされていません。

署名証明書の作成

次の例では、Runbook の署名に使用できる自己署名証明書を作成します。 このコードでは、証明書が作成されてエクスポートされるので、後で Hybrid Runbook Worker にインポートできます。 後で証明書を参照するときに使用できるように、サムプリントも返されます。

# 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

証明書をインポートし、署名を検証するように worker を構成する

作成した証明書をグループ内の各 Hybrid Runbook Worker にコピーします。 次のスクリプトを実行して、証明書をインポートし、Runbook で署名の検証を使用するように worker を構成します。

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

証明書を使用して Runbook に署名する

署名された Runbook のみを使用するように Hybrid Runbook Worker を構成したので、Hybrid Runbook Worker で使用される Runbook に署名する必要があります。 次のサンプルの PowerShell コードを使用して Runbook に署名します。

$SigningCert = ( Get-ChildItem -Path cert:\LocalMachine\My\<CertificateThumbprint>)
Set-AuthenticodeSignature .\TestRunbook.ps1 -Certificate $SigningCert

Runbook が署名されたら、Automation アカウントにインポートし、署名ブロックで発行する必要があります。 Runbook をインポートする方法については、「Runbook のインポート」を参照してください。

Note

Runbook コードでは、コメントも含め、プレーンテキスト文字のみを使用します。 Áやñなど、分音記号付きの文字 (á や ñ など) を使用すると、エラーが発生します。 Azure Automation によってコードがダウンロードされると、文字が疑問符に置き換えられ、署名が "署名ハッシュの検証に失敗しました" というメッセージで失敗します。

Linux Hybrid Runbook Worker での署名された Runbook の使用

署名された Runbook を使用できるようにするには、Linux Hybrid Runbook Worker のローカル コンピューター上に GPG 実行可能ファイルが存在する必要があります。

重要

署名された Runbook のみを実行するように Hybrid Runbook Worker を構成すると、署名されていない Runbook は worker で実行できなくなります。

この構成は次の手順で完了します。

  • GPG キーリングとキー ペアを作成する
  • Hybrid Runbook Worker でキーリングを使用できるようにする
  • 署名の検証が有効であることを確認する
  • Runbook に署名する

Note

PowerShell 7.x では、Windows および Linux Hybrid Runbook Worker について、署名された Runbook はサポートされていません。

GPG キーリングとキー ペアを作成する

GPG のキーリングとキー ペアを作成するには、Hybrid Runbook Worker の nxautomation アカウントを使用します。

  1. sudo アプリケーションを使用し、nxautomation アカウントとしてサインインします。

    sudo su - nxautomation
    
  2. nxautomation を使用して、GPG のキー ペアを生成します。 GPG で手順が示されます。 名前、メール アドレス、有効期限、パスフレーズを指定する必要があります。 その後、コンピューターのエントロピがキーを生成するのに十分になるまで待ちます。

    sudo gpg --generate-key
    
  3. sudo を使って GPG ディレクトリを生成したため、次のコマンドを使ってその所有者を nxautomation に変更する必要があります。

    sudo chown -R nxautomation ~/.gnupg
    

Hybrid Runbook Worker でキーリングを使用できるようにする

キーリングが作成されたら、Hybrid Runbook Worker でそれを使用できるようにします。 設定ファイル home/nxautomation/state/worker.conf を変更し、ファイル セクション [worker-optional] の下に次のサンプル コードを含めます。

gpg_public_keyring_path = /home/nxautomation/run/.gnupg/pubring.kbx

署名の検証が有効であることを確認する

コンピューターで署名の検証が無効になっている場合は、次の sudo コマンドを実行して有効にする必要があります。 <LogAnalyticsworkspaceId> は、ワークスペースの ID に置き換えます。

sudo python /opt/microsoft/omsconfig/modules/nxOMSAutomationWorker/DSCResources/MSFT_nxOMSAutomationWorkerResource/automationworker/scripts/require_runbook_signature.py --true <LogAnalyticsworkspaceId>

Runbook に署名する

署名の検証を構成したら、次の GPG コマンドを使用して Runbook に署名します。

gpg --clear-sign <runbook name>

署名された Runbook は <runbook name>.asc という名前になります。

署名された Runbook を Azure Automation にアップロードし、標準の Runbook のように実行できるようになります。

ログ記録

Hybrid Runbook Worker で実行している Runbook の問題をトラブルシューティングするために、ログは次の場所にローカルに格納されます。

  • Windows の場合、詳細なジョブ ランタイム プロセスのログ記録については C:\ProgramData\Microsoft\System Center\Orchestrator\<version>\SMA\Sandboxes。 Runbook ジョブ状態イベントの概要は、Application and Services Logs\Microsoft-Automation\Operations イベント ログに書き込まれます。

  • Linux の場合、ユーザーのハイブリッド worker ログは /home/nxautomation/run/worker.log に、システムの runbook worker ログは /var/opt/microsoft/omsagent/run/automationworker/worker.log にあります。

次のステップ