Azure Automation에서 Runbook 시작
다음 표를 통해 특정 시나리오에 가장 적합하게 Azure Automation에서 Runbook을 시작하는 방법을 결정할 수 있습니다. 이 문서에서는 Azure Portal 및 Windows PowerShell을 사용하여 Runbook을 시작하는 방법에 대해 자세히 설명합니다. 다른 방법에 대한 자세한 내용은 아래 링크에서 액세스할 수 있는 다른 설명서에 제공됩니다.
방법 | 특성 |
---|---|
Azure Portal | |
Windows PowerShell | |
Azure Automation API | |
웹후크 | |
Azure 경고에 응답 | |
예약 | |
다른 Runbook에서 |
다음 이미지는 Runbook의 수명 주기에서 자세한 단계별 프로세스를 보여 줍니다. Runbook이 Azure Automation에서 시작하는 다양한 방법, Hybrid Runbook Worker에서 Azure Automation Runbook을 실행하는 데 필요한 구성 요소 및 여러 구성 요소 간의 상호 작용을 포함합니다. 데이터 센터에서 Automation Runbook의 실행에 대해 알아보려면 Hybrid Runbook Worker
Runbook 매개 변수 사용
Azure Portal 또는 Windows PowerShell을 사용하여 Runbook을 시작한 경우 Azure Automation 웹 서비스를 통해 지침이 전송됩니다. 이 서비스는 복잡한 데이터 형식을 가진 매개 변수를 지원하지 않습니다. 복잡한 매개 변수의 값을 제공해야 하는 경우 Azure Automation에서 자식 Runbook에 설명된 대로 다른 Runbook에서 인라인으로 호출해야 합니다.
Azure Automation 웹 서비스는 다음 섹션에 설명된 대로 특정 데이터 형식을 사용하는 매개 변수에 대해 특별한 기능을 제공합니다.
명명된 값
매개 변수의 데이터 형식이 [object]인 경우 {Name1:'Value1', Name2:'Value2', Name3:'Value3'}JSON 형식을 사용하여 명명된 값 목록으로 전송할 수 있습니다. 이러한 값은 단순한 형식이어야 합니다. Runbook에 각 명명된 값에 해당하는 속성이 있는 PSCustomObject로 매개 변수가 수신됩니다.
user매개 변수를 수락하는 다음의 테스트 Runbook을 고려해보세요.
Workflow Test-Parameters
{
param (
[Parameter(Mandatory=$true)][object]$user
)
$userObject = $user | ConvertFrom-JSON
if ($userObject.Show) {
foreach ($i in 1..$userObject.RepeatCount) {
$userObject.FirstName
$userObject.LastName
}
}
}
user 매개 변수에 대해 다음 텍스트를 사용할 수 있습니다.
{FirstName:'Joe',LastName:'Smith',RepeatCount:'2',Show:'True'}
그 결과는 다음과 같이 출력됩니다.
Joe
Smith
Joe
Smith
배열
매개 변수가 [array] 또는 [string[]]과 같은 배열인 경우 [Value1, Value2, Value3] JSON 형식을 사용하여 값 목록으로 전송해야 합니다. 이러한 값은 단순한 형식이어야 합니다.
user매개 변수를 수락하는 다음의 테스트 Runbook을 고려해보세요.
Workflow Test-Parameters
{
param (
[Parameter(Mandatory=$true)][array]$user
)
if ($user[3]) {
foreach ($i in 1..$user[2]) {
$ user[0]
$ user[1]
}
}
}
user 매개 변수에 대해 다음 텍스트를 사용할 수 있습니다.
["Joe","Smith",2,true]
그 결과는 다음과 같이 출력됩니다.
Joe
Smith
Joe
Smith
자격 증명
매개 변수의 데이터 형식이 PSCredential
인 경우 Azure Automation 자격 증명 자산의 이름을 입력하면 됩니다. Runbook에서 지정한 이름의 자격 증명을 검색합니다. 다음 테스트 Runbook은 credential
이라는 매개 변수를 수락합니다.
Workflow Test-Parameters
{
param (
[Parameter(Mandatory=$true)][PSCredential]$credential
)
$credential.UserName
}
My Credential
이라는 자격 증명 자산이 있다고 가정할 경우 user 매개 변수에 다음 텍스트를 사용할 수 있습니다.
My Credential
자격 증명의 사용자 이름이 jsmith
라고 가정할 경우 다음 출력이 표시됩니다.
jsmith
Azure Portal을 사용하여 Runbook 시작
- Azure Portal에서 Automation을 선택한 다음 Automation 계정의 이름을 선택합니다.
- 왼쪽 창에서 Runbook을 선택합니다.
- Runbook 창에서 Runbook을 선택하고 시작을 클릭합니다.
- Runbook에 매개 변수가 있는 경우 각 매개 변수에 대한 텍스트 상자와 함께 값을 제공하라는 메시지가 표시됩니다. 매개 변수에 대한 자세한 내용은 Runbook 매개 변수를 참조하세요.
- 작업 창에서 Runbook 작업의 상태를 볼 수 있습니다.
PowerShell을 사용하여 Runbook 시작
Windows PowerShell에서 Start-AzAutomationRunbook을 사용하여 Runbook을 시작할 수 있습니다. 다음 샘플 코드는 Test-Runbook이라는 Runbook을 시작합니다.
Start-AzAutomationRunbook -AutomationAccountName "MyAutomationAccount" -Name "Test-Runbook" -ResourceGroupName "ResourceGroup01"
Start-AzAutomationRunbook
은 Runbook이 시작된 후 해당 상태를 추적하는 데 사용할 수 있는 작업 개체를 반환합니다. 그런 다음, 이 작업 개체를 Get-AzAutomationJob에서 사용하여 작업 상태를 확인하고, Get-AzAutomationJobOutput에서 사용하여 해당 출력을 검색할 수 있습니다. 다음 예제는 Test-Runbook이라는 Runbook을 시작하고, 완료될 때까지 기다렸다가 해당 출력을 표시합니다.
$runbookName = "Test-Runbook"
$ResourceGroup = "ResourceGroup01"
$AutomationAcct = "MyAutomationAccount"
$job = Start-AzAutomationRunbook -AutomationAccountName $AutomationAcct -Name $runbookName -ResourceGroupName $ResourceGroup
$doLoop = $true
While ($doLoop) {
$job = Get-AzAutomationJob -AutomationAccountName $AutomationAcct -Id $job.JobId -ResourceGroupName $ResourceGroup
$status = $job.Status
$doLoop = (($status -ne "Completed") -and ($status -ne "Failed") -and ($status -ne "Suspended") -and ($status -ne "Stopped"))
}
Get-AzAutomationJobOutput -AutomationAccountName $AutomationAcct -Id $job.JobId -ResourceGroupName $ResourceGroup -Stream Output
Runbook에 매개 변수가 필요한 경우 해시 테이블로 매개 변수를 제공해야 합니다. 해시 테이블의 키는 매개 변수 이름과 일치해야 하고, 값은 매개 변수 값입니다. 다음 예제에서는 FirstName 및 LastName의 두 문자열 매개 변수, RepeatCount라는 정수 및 Show라는 부울 매개 변수를 사용하여 Runbook을 시작하는 방법을 보여 줍니다. 매개 변수에 대한 자세한 내용은 Runbook 매개 변수를 참조하세요.
$params = @{"FirstName"="Joe";"LastName"="Smith";"RepeatCount"=2;"Show"=$true}
Start-AzAutomationRunbook -AutomationAccountName "MyAutomationAccount" -Name "Test-Runbook" -ResourceGroupName "ResourceGroup01" -Parameters $params
다음 단계
- Runbook 관리에 대한 자세한 내용은 Azure Automation에서 Runbook 관리를 참조하세요.
- PowerShell에 대한 자세한 내용은 PowerShell 설명서를 참조하세요.
- Runbook 실행과 관련된 문제 해결은 Runbook 문제 해결을 참조하세요.