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일부터는 새로운 에이전트 기반 Hybrid Worker를 만들 수 없습니다. 자세히 알아보기.
  • Azure Automation 실행 계정은 2023년 9월 30일에 사용 중지되며 관리 ID로 대체됩니다. 이 날짜 이전에 관리 ID를 사용하도록 Runbook 마이그레이션을 시작해야 합니다. 2023년 9월 30일 이전에 실행 계정에서 관리 ID로 Runbook 마이그레이션을 시작하려면 기존 실행 계정에서 관리 ID로 마이그레이션을 참조하세요.

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

Runbook 작업 동작 계획

Azure Automation은 클라우드 샌드박스에서 실행되는 작업과 다르게 Hybrid 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 Hybrid Worker 버전이 7.3.12960 이상인지 확인합니다.
  • PowerShell 7.2 및 Python 3.10(미리 보기) Runbook은 확장 기반 Windows Hybrid Worker에서만 지원됩니다. 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_7_2_path이고 변수 값이 PowerShell 실행 위치인 환경 변수를 만듭니다. 환경 변수가 성공적으로 만들어진 후 Hybrid Runbook Worker를 다시 시작합니다.

PowerShell 7.1

Windows Hybrid Worker에서 PowerShell 7.1 Runbook을 실행하려면 Hybrid Worker에 PowerShell을 설치합니다. Windows에 PowerShell 설치를 참조하세요. 설치 후 PATH 환경 변수에 PowerShell 파일을 추가하고 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 작업자 버전이 1.7.5.0 이상인지 확인합니다.
  • PowerShell 7.2 및 Python 3.10(미리 보기) Runbook은 확장 기반 Linux Hybrid Worker에서만 지원됩니다. Linux Hybrid Worker 확장 버전이 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 사용 권한 구성

다음과 같은 방법으로 Runbook이 Hybrid Runbook Worker에 실행되도록 사용 권한을 설정합니다.

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

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

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

$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. Runbook이 Identity 매개 변수로 Connect-AzAccount 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에서 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 액세스 권한을 부여할 수 있습니다.

    관리 ID 선택 방법 스크린샷.

  2. 필요에 따라 선택한 역할에 Azure Arc 관리 ID를 추가합니다.

    액세스 제어 블레이드에서 역할 할당을 추가하는 방법의 스크린샷.

참고 항목

이는 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 인증 사용

필수 구성 요소

  • Hybrid Worker를 배포해야 하며 Runbook을 실행하기 전에 컴퓨터가 실행 중 상태여야 합니다.

Runbook이 로컬 리소스에 자체 인증을 제공하는 대신 Hybrid Worker 자격 증명 을 Hybrid Runbook 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\AzureConnectedMachineAgent\Tokens(읽기)
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 그룹의 이름을 지정할 수 있도록 지원하는 실행 계정 옵션을 사용합니다. 그룹이 지정되면 이 그룹에 있는 Worker 중 하나가 Runbook을 검색하여 실행합니다. Runbook에서 이 옵션을 지정하지 않을 경우 Azure Automation이 평소와 같이 Runbook을 실행합니다.

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

Hybrid Runbook Worker 그룹을 선택하는 방법을 보여 주는 스크린샷.

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으로 작업

Windows Hybrid Runbook Worker가 서명된 Runbook만 실행하도록 구성할 수 있습니다.

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

인증서 가져오기 및 서명 유효성 검사를 위해 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에 서명

Hybrid Runbook Worker가 서명된 Runbook만 사용하도록 구성된 경우, Runbook을 Hybrid Runbook Worker에서 사용하려면 서명해야 합니다. 다음 샘플 PowerShell 코드를 사용하여 Runbook에 서명합니다.

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

Runbook이 서명되고 나면, Automation 계정으로 Runbook을 가져오고 서명 블록과 함께 게시해야 합니다. 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 worker 로그는 /var/opt/microsoft/omsagent/run/automationworker/worker.log에서 찾을 수 있습니다.

다음 단계