Hybrid Runbook Worker에서 Automation Runbook 실행

Important

  • Azure Automation 에이전트 기반 사용자 Hybrid Runbook Worker(Windows 및 Linux)는 2024년 8월 31일에 사용 중지되며 이 날짜 이후에는 지원되지 않습니다. 2024년 8월 31일 이전에 기존 에이전트 기반 사용자 Hybrid Runbook Worker를 확장 기반 작업자로 마이그레이션을 완료해야 합니다. 또한 2023년 11월 1일부터는 새로운 에이전트 기반 하이브리드 작업자를 만들 수 없습니다. 자세히 알아보기.
  • Azure Automation 실행 계정은 2023년 9월 30일에 사용 중지되며 관리 ID로 대체됩니다. 이 날짜 이전에 관리 ID를 사용하도록 Runbook 마이그레이션을 시작해야 합니다. 자세한 내용은 2023년 9월 30일 이전에 Runbook을 실행 계정에서 관리 ID로 마이그레이션하기 시작하도록 기존 실행 계정에서 관리 ID로 마이그레이션을 참조하세요.

Hybrid Runbook Worker에서 실행되는 Runbook은 일반적으로 로컬 컴퓨터 또는 작업자 가 배포된 로컬 환경의 리소스에 대해 리소스를 관리합니다. Azure Automation의 Runbook은 일반적으로 Azure 클라우드에서 리소스를 관리합니다. 다르게 사용되지만 Azure Automation에서 실행되는 Runbook과 Hybrid Runbook Worker에서 실행되는 Runbook은 구조가 동일합니다.

Hybrid Runbook Worker에서 실행되도록 Runbook을 작성하는 경우, 해당 Worker를 호스트하는 머신에서 Runbook을 편집하고 테스트해야 합니다. 호스트 머신에는 로컬 리소스를 관리하고 액세스하는 데 필요한 모든 PowerShell 모듈과 네트워크 액세스 권한이 있습니다. Hybrid Runbook Worker 컴퓨터에서 Runbook을 테스트한 후 Azure Automation 환경에 업로드하여 작업자에서 실행할 수 있습니다.

방화벽으로 보호되는 Azure 서비스 계획

Azure Storage, Azure Key Vault 또는 Azure SQL에서 Azure Firewall을 사용하도록 설정하면 해당 서비스에 대한 Azure Automation Runbook의 액세스가 차단됩니다. 자동화는 신뢰할 수 있는 서비스 목록의 일부가 아니므로 신뢰할 수 있는 Microsoft 서비스를 허용하는 방화벽 예외가 활성화된 경우에도 액세스가 차단됩니다. 방화벽을 사용하도록 설정하면 Hybrid Runbook Worker 및 가상 네트워크 서비스 엔드포인트를 사용해야만 액세스할 수 있습니다.

Runbook 작업 동작 계획

Azure Automation은 하이브리드 Runbook Worker의 작업을 클라우드 샌드박스에서 실행되는 작업과 다르게 처리합니다. 장기 실행 Runbook이 있는 경우 다시 시작할 수 있도록 복원력이 있는지 확인합니다. 작업 동작에 대한 자세한 내용은 Hybrid Runbook Worker 작업을 참조 하세요.

서비스 계정

Windows Hybrid Worker

Hybrid Runbook Worker의 작업은 로컬 시스템 계정에서 실행됩니다.

참고 항목

  • PowerShell 5.1, PowerShell 7.1(미리 보기), Python 2.7 및 Python 3.8 Runbook은 확장 기반 및 에이전트 기반 Windows Hybrid Runbook Worker 모두에서 지원됩니다. 에이전트 기반 작업자의 경우 Windows 하이브리드 작업자 버전이 7.3.12960 이상인지 확인합니다.
  • PowerShell 7.2 및 Python 3.10(미리 보기) Runbook은 확장 기반 Windows 하이브리드 작업자에서만 지원됩니다. Windows Hybrid Worker 확장 버전이 1.1.11 이상인지 확인합니다.

참고 항목

Windows 시스템에서 환경 변수를 만들려면 다음 단계를 수행합니다.

  1. 제어판>시스템>고급 시스템 설정 이동합니다.
  2. 시스템 속성에서 환경 변수를 선택합니다.
  3. 시스템 변수에서 새로 만들기를 선택합니다.
  4. 변수 이름변수 값을 입력한 다음 확인을 선택합니다.
  5. 현재 사용자로부터 VM 또는 로그아웃을 다시 시작하고 로그인하여 환경 변수 변경 내용을 구현합니다.

PowerShell 7.2

Windows Hybrid Worker에서 PowerShell 7.2 Runbook을 실행하려면 Hybrid Worker에 PowerShell을 설치합니다. Windows에 PowerShell 설치를 참조 하세요.

PowerShell 7.2 설치가 완료되면 실행 파일 PowerShell의 위치로 변수 이름을 powershell_7_2_path 변수 값으로 환경 변수를 만듭니다. 환경 변수를 성공적으로 만든 후 Hybrid Runbook Worker를 다시 시작합니다.

PowerShell 7.1

Windows Hybrid Worker에서 PowerShell 7.1 Runbook을 실행하려면 Hybrid Worker에 PowerShell을 설치합니다. Windows에 PowerShell 설치를 참조 하세요. POWERShell 파일을 PATH 환경 변수에 추가하고 설치 후 Hybrid Runbook Worker를 다시 시작해야 합니다.

Python 3.10

Windows Hybrid Worker에서 Python 3.10 Runbook을 실행하려면 Hybrid Worker에 Python을 설치합니다. Windows에 Python 설치를 참조 하세요.

Python 3.10 설치가 완료되면 변수 이름을 python_3_10_path, 실행 파일 Python의 위치로 변수 값을 사용하여 환경 변수를 만듭니다. 환경 변수를 성공적으로 만든 후 Hybrid Runbook Worker를 다시 시작합니다.

Python 3.8

Windows Hybrid Worker에서 Python 3.8 Runbook을 실행하려면 Hybrid Worker에 Python을 설치합니다. Windows에 Python 설치를 참조 하세요. Python 3.8 Runbook에 대한 환경 변수PYTHON_3_PATH 만들고 실행 가능한 Python의 위치를 변수 값으로 추가해야 합니다. 환경 변수를 성공적으로 만든 후 Hybrid Runbook Worker를 다시 시작합니다.

Python 실행 파일이 기본 위치 C:\WPy64-3800\python-3.8.0.amd64\python.exe 경우 환경 변수를 만들 필요가 없습니다.

Python 2.7

Windows Hybrid Worker에서 Python 2.7 Runbook을 실행하려면 Hybrid Worker에 Python을 설치합니다. Windows에 Python 설치를 참조 하세요. Python 2.7 Runbook에 대한 환경 변수PYTHON_2_PATH 만들고 실행 가능한 Python 파일의 위치를 변수 값으로 추가해야 합니다. 환경 변수를 성공적으로 만든 후 Hybrid Runbook Worker를 다시 시작합니다.

Python 실행 파일이 기본 위치 C:\Python27\python.exe 경우 환경 변수를 만들 필요가 없습니다.

Linux Hybrid Worker

참고 항목

  • PowerShell 5.1, PowerShell 7.1(미리 보기), Python 2.7, Python 3.8 Runbook은 확장 기반 및 에이전트 기반 Linux Hybrid Runbook Worker 모두에서 지원됩니다. 에이전트 기반 작업자의 경우 Linux Hybrid Runbook Worker 버전이 1.7.5.0 이상인지 확인합니다.
  • PowerShell 7.2 및 Python 3.10(미리 보기) Runbook은 확장 기반 Linux 하이브리드 작업자에서만 지원됩니다. Linux 하이브리드 작업자 확장 버전이 1.1.11 이상인지 확인합니다.

참고 항목

Linux 시스템에서 환경 변수를 만들려면 다음 단계를 수행합니다.

  1. /etc/environment를 엽니다.
  2. /etc/environment의 새 줄에 VARIABLE_NAME="variable_value"를 추가하여 새 환경 변수를 만듭니다(VARIABLE_NAME 새 환경 변수의 이름이고 할당할 값을 나타내는 variable_value).
  3. 현재 사용자로부터 VM 또는 로그아웃을 다시 시작하고 /etc/environment에 변경 내용을 저장한 후 로그인하여 환경 변수 변경 내용을 구현합니다.

PowerShell 7.2

Linux Hybrid Worker에서 PowerShell 7.2 Runbook을 실행하려면 Hybrid Worker에 PowerShell 파일을 설치합니다. 자세한 내용은 Linux에 PowerShell 설치를 참조 하세요.

PowerShell 7.2 설치가 완료되면 변수 이름을powershell_7_2_path, 변수 값을 실행 가능한 PowerShell 파일의 위치로 사용하여 환경 변수를 만듭니다. 환경 변수를 성공적으로 만든 후 Hybrid Runbook Worker를 다시 시작합니다.

Python 3.10

Linux Hybrid Worker에서 Python 3.10 Runbook을 실행하려면 Hybrid Worker에 Python을 설치합니다. 자세한 내용은 Linux에 Python 3.10 설치를 참조하세요.

Python 3.10 설치가 완료되면 변수 이름을 python_3_10_path, 실행 가능한 Python 파일의 위치로 변수 값을 사용하여 환경 변수를 만듭니다. 환경 변수를 성공적으로 만든 후 Hybrid Runbook Worker를 다시 시작합니다.

Python 3.8

Linux Hybrid Worker에서 Python 3.8 Runbook을 실행하려면 Hybrid Worker에 Python을 설치합니다. 실행 가능한 Python 파일을 PATH 환경 변수에 추가하고 설치 후 Hybrid Runbook Worker를 다시 시작해야 합니다.

Python 2.7

Linux Hybrid Worker에서 Python 2.7 Runbook을 실행하려면 Hybrid Worker에 Python을 설치합니다. 실행 가능한 Python 파일을 PATH 환경 변수에 추가하고 설치 후 Hybrid Runbook Worker를 다시 시작해야 합니다.

Runbook 권한 구성

다음과 같은 방법으로 Hybrid Runbook Worker에서 Runbook을 실행할 수 있는 권한을 정의합니다.

  • Runbook이 로컬 리소스에 자체 인증을 제공합니다.
  • Azure 리소스에 대한 관리 ID를 사용하여 인증을 구성합니다.
  • Hybrid Worker 자격 증명을 지정하여 모든 Runbook에 대한 사용자 컨텍스트를 제공합니다.

로컬 리소스에 대한 Runbook 인증 사용

리소스에 대한 자체 인증을 제공하는 Runbook을 준비하는 경우 Runbook에서 자격 증명인증서 자산을 사용합니다. Runbook이 다른 리소스에 인증할 수 있도록 자격 증명을 지정할 수 있는 몇 가지 cmdlet이 있습니다. 다음 예제에서는 컴퓨터를 다시 시작하는 Runbook의 일부를 보여 줍니다. 자격 증명 자산에서 자격 증명을 검색하고 변수 자산에서 컴퓨터의 이름을 검색한 다음 cmdlet과 함께 Restart-Computer 이러한 값을 사용합니다.

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

Restart-Computer -ComputerName $Computer -Credential $Cred

InlineScript 작업을 사용할 수도 있습니다. InlineScript 를 사용하면 자격 증명을 사용하여 다른 컴퓨터에서 코드 블록을 실행할 수 있습니다.

관리 ID를 통한 Runbook 인증 사용

Azure 가상 머신의 Hybrid Runbook Worker는 관리 ID를 사용하여 Azure 리소스를 인증할 수 있습니다. 다음을 수행할 필요가 없으므로 실행 계정 대신 Azure 리소스에 관리 ID를 사용하면 이점이 제공됩니다.

  • 실행 인증서를 내보낸 다음 Hybrid Runbook Worker로 가져옵니다.
  • 실행 계정에서 사용하는 인증서를 갱신합니다.
  • Runbook 코드에서 실행 연결 개체를 처리합니다.

Hybrid Runbook Worker 스크립트에서 관리 ID를 사용하는 방법에는 두 가지가 있습니다.

  1. Automation 계정에 대해 시스템 할당 관리 ID를 사용합니다.

    1. Automation 계정에 대한 시스템 할당 관리 ID를 구성합니다.

    2. 작업을 수행하려면 구독 내에서 이 ID에 필요한 권한을 부여합니다.

    3. 커넥트-AzAccount cmdlet을 매개 변수와 함께 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. Runbook이 Identity 매개 변수로 Connect-Az-Account cmdlet을 사용하여 Azure 리소스로 인증되도록 업데이트합니다. 이 구성은 실행 계정을 사용하고 관련 계정 관리를 수행해야 하는 필요를 줄여 줍니다.
        # 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 지원 서버 또는 Arc 지원 VMware vSphere VM에는 이미 인증에 사용할 수 있는 기본 제공 시스템 관리 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 사용할 수 있습니다.

참고 항목

기본적으로 Azure 컨텍스트는 PowerShell 세션 간에 사용하기 위해 저장됩니다. Azure 컨텍스트 및 로그인 자격 증명 | Microsoft Docs에 따라 Hybrid Runbook Worker의 이전 Runbook이 Azure에서 인증된 경우 해당 컨텍스트가 System PowerShell 프로필의 디스크에 유지될 수 있습니다. 예를 들어 Get-AzVM이 포함된 Runbook은 Connect-AzAccount를 호출하지 않고 구독의 모든 VM을 반환할 수 있으며 사용자는 해당 Runbook 내에서 인증하지 않고도 Azure 리소스에 액세스할 수 있습니다. 여기에 자세히 설명된 대로 Azure PowerShell에서 컨텍스트 자동 저장을 사용하지 않도록 설정할 수 있습니다.

Hybrid Worker 자격 증명으로 Runbook 인증 사용

Runbook이 로컬 리소스에 자체 인증을 제공하는 대신 Hybrid Runbook Worker 그룹에 대한 Hybrid Worker 자격 증명을 지정할 수 있습니다. Hybrid Worker 자격 증명을 지정하려면 로컬 리소스에 대한 액세스 권한이 있는 자격 증명 자산을 정의해야 합니다. 이러한 리소스에는 인증서 저장소가 포함되며 그룹의 Hybrid Runbook Worker에서 이러한 자격 증명으로 실행되는 모든 Runbook이 포함됩니다.

  • 자격 증명의 사용자 이름은 다음 형식 중 하나여야 합니다.

    • domain\username
    • username@domain
    • 사용자 이름(온-프레미스 컴퓨터에 로컬 계정의 경우)
  • PowerShell Runbook Export-RunAsCertificateToHybridWorker를 사용하려면 로컬 머신에서 Azure Automation에 대한 Az 모듈을 설치해야 합니다.

Hybrid Runbook Worker 그룹에 자격 증명 자산 사용

기본적으로 하이브리드 작업은 시스템 계정 컨텍스트에서 실행됩니다. 그러나 다른 자격 증명 자산에서 하이브리드 작업을 실행하려면 다음 단계를 따릅니다.

  1. 로컬 리소스에 대한 액세스로 자격 증명 자산을 만듭니다.
  2. Azure Portal에서 Automation 계정을 엽니다.
  3. Hybrid Worker 그룹을 선택하고 특정 그룹을 선택합니다.
  4. 설정을 선택합니다.
  5. Hybrid Worker 자격 증명의 값을 기본값에서 사용자 지정으로 변경합니다.
  6. 자격 증명을 선택하고 저장을 클릭합니다.
  7. 사용자 지정 사용자에게 다음 권한이 할당되지 않은 경우 작업이 일시 중단될 수 있습니다.
리소스 종류 폴더 사용 권한
Azure VM C:\Packages\Plugins\Microsoft.Azure.Automation.HybridWorker.HybridWorkerForWindows(읽기 및 실행)
Arc 지원 서버 C:\ProgramData\Azure커넥트edMachineAgent\Tokens (read)
C:\Packages\Plugins\Microsoft.Azure.Automation.HybridWorker.HybridWorkerForWindows(읽기 및 실행)

참고 항목

Linux Hybrid Worker는 Hybrid Worker 자격 증명을 지원하지 않습니다.

Hybrid Runbook Worker에서 Runbook 시작

Azure Automation 에서 Runbook 시작은 Runbook을 시작하는 다양한 방법을 설명합니다. Hybrid Runbook Worker에서 Runbook을 시작하면 Hybrid Runbook Worker 그룹의 이름을 지정할 수 있는 실행 옵션이 사용됩니다. 그룹을 지정하면 해당 그룹의 작업자 중 한 명이 Runbook을 검색하고 실행합니다. Runbook에서 이 옵션을 지정하지 않으면 Azure Automation은 평소와 같이 Runbook을 실행합니다.

Azure Portal에서 Runbook을 시작하면 Azure 또는 Hybrid Worker선택할 수 있는 실행 옵션이 표시됩니다. Hybrid Worker를 선택하여 드롭다운에서 Hybrid Runbook Worker 그룹을 선택합니다.

Screenshot showing how to select the Hybrid Runbook Worker group.

PowerShell을 사용하여 Runbook을 시작한 경우 RunOn 매개 변수로 Start-AzAutomationRunbook cmdlet을 사용합니다. 다음 예제에서는 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를 구성할 수 있습니다.

Important

Hybrid Runbook Worker가 서명된 Runbook만 실행하도록 구성하면 서명되지 않은 Runbook은 해당 Worker에서 실행되지 않습니다.

참고 항목

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

인증서 가져오기 및 서명 유효성 검사를 위한 작업자 구성

만든 인증서를 그룹의 각 Hybrid Runbook Worker에 복사합니다. 다음 스크립트를 실행하여 인증서를 가져오고 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"

인증서를 사용하여 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 가져오기를 참조하세요.

참고 항목

주석을 포함하여 Runbook 코드에서 일반 텍스트 문자만 사용합니다. á 또는 ñ와 같은 음수 표시가 있는 문자를 사용하면 오류가 발생합니다. Azure Automation에서 코드를 다운로드하면 문자가 물음표로 대체되고 서명이 "서명 해시 유효성 검사 실패" 메시지로 실패합니다.

Linux Hybrid Runbook Worker에서 서명된 Runbook 작업

서명된 Runbook으로 작업하려면 Linux Hybrid Runbook Worker에 로컬 머신에 GPG 실행 파일이 있어야 합니다.

Important

Hybrid Runbook Worker가 서명된 Runbook만 실행하도록 구성하면 서명되지 않은 Runbook은 해당 Worker에서 실행되지 않습니다.

이 구성을 완료하려면 다음 단계를 수행합니다.

  • GPG 키링 및 키페어 만들기
  • Hybrid Runbook Worker에서 인증 키를 사용할 수 있도록 설정
  • 서명 유효성 검사가 사용 중인지 확인합니다.
  • Runbook 서명

참고 항목

  • PowerShell 7.x는 에이전트 기반 Windows 및 에이전트 기반 Linux Hybrid Runbook Worker에 대해 서명된 Runbook을 지원하지 않습니다.
  • 서명된 PowerShell 및 Python Runbook은 확장 기반 Linux 하이브리드 작업자에서 지원되지 않습니다.

GPG 키링 및 키페어 만들기

참고 항목

GPG 키링 및 키 만들기는 에이전트 기반 하이브리드 작업자에만 적용됩니다.

GPG 키링 및 키 설명을 만들려면 Hybrid Runbook Worker nxautomation 계정을 사용합니다.

  1. sudo 애플리케이션을 사용하여 nxautomation 계정으로 로그인합니다.

    sudo su - nxautomation
    
  2. nxautomation을 사용하면 GPG 키페어를 루트로 생성합니다. GPG는 단계를 안내합니다. 이름, 메일 주소, 만료 시간, 암호를 지정해야 합니다. 그런 다음 키가 생성될 수 있도록 컴퓨터에 엔트로피가 충분히 있을 때까지 기다립니다.

    sudo gpg --generate-key
    
  3. GPG 디렉터리는 sudo를 사용하여 생성되었으므로 다음 명령을 루트로 사용하여 소유자를 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

서명 유효성 검사가 사용 중인지 확인합니다.

컴퓨터에서 서명 유효성 검사를 사용하지 않도록 설정한 경우 다음 명령을 루트로 실행하여 설정해야 합니다. <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 이름>.asc라고 합니다.

이제 서명된 Runbook을 Azure Automation에 업로드하고 일반 Runbook처럼 실행할 수 있습니다.

로깅

하이브리드 runbook worker에서 실행되는 runbook 문제를 해결하기 위해 로그가 다음 위치에 로컬로 저장됩니다.

  • Windows에서는 자세한 작업 런타임 프로세스 로깅을 위해 C:\ProgramData\Microsoft\System Center\Orchestrator\<version>\SMA\Sandboxes에 저장됩니다. 고급 Runbook 작업 상태 이벤트는 Application and Services Logs\Microsoft-Automation\Operations 이벤트 로그에 기록됩니다.

  • Linux에서 사용자 하이브리드 작업자 로그를 찾을 /home/nxautomation/run/worker.log수 있으며 시스템 Runbook 작업자 로그는 .에서 /var/opt/microsoft/omsagent/run/automationworker/worker.log찾을 수 있습니다.

다음 단계