Service Management Automation Runbook 작성

중요

이 버전의 SMA(서비스 관리 자동화)는 지원이 종료되었습니다. SMA 2022로 업그레이드하는 것이 좋습니다.

Service Management Automation 및 Microsoft Azure Automation의 Runbook은 Windows PowerShell 워크플로 또는 PowerShell 스크립트입니다. 이러한 Runbook은 클라우드 서버를 관리 및 배포하는 관리 프로세스를 자동화하는 기능 또는 Windows PowerShell 스크립트에서 수행할 수 있는 기타 기능을 제공합니다.

두 시스템 간의 Runbook에는 차이가 없으며 동일한 기능을 사용하여 동일한 Runbook을 실행할 수 있습니다. 이 문서에서 Automation이라는 용어를 사용하는 경우 서비스 관리 자동화와 Microsoft Azure Automation 모두 참조합니다.

Windows PowerShell 워크플로로 작업하도록 자동화에서 제공하는 추가 서비스에는 다음이 포함됩니다.

  • runbook의 중앙 집중식 스토리지 및 관리.

  • Runbook 예약 및 실행에 대한 확장 가능한 아키텍처

  • 중앙 집중식으로 관리되며 모든 Runbook에 사용할 수 있는 전역 리소스

  • Runbook을 작성하고 테스트하는 데 사용할 수 있는 사용자 인터페이스

  • Runbook을 관리하고 시작하는 데 사용할 수 있는 cmdlet 집합

Runbook 만들기 또는 가져오기

Runbook을 관리 포털에서 만들거나 파일에서 가져와서 Service Management Automation에 추가할 수 있습니다.

관리 포털에서 Runbook 만들기

  1. 관리 포털에서 새로 만들기, App Services, Automation, Runbook, 빠른 만들기를 선택합니다.

  2. 필요한 정보를 입력하고 만들기를 선택합니다. Runbook 이름은 문자로 시작해야 하며 문자, 숫자, 언더바, 대시 등이 포함될 수 있습니다.

  3. 지금 Runbook을 편집하려면 Runbook 편집을 선택합니다. 그렇지 않으면 확인을 선택합니다.

  4. 새 Runbook이 Runbook 탭에 표시됩니다.

파일에서 Runbook 가져오기

  1. 관리 포털에서 자동화를 선택한 다음 자동화 계정을 선택합니다.

  2. 가져오기를 선택합니다.

  3. 파일 찾아보기를 선택하고 가져올 스크립트 파일을 찾습니다.

  4. 지금 Runbook을 편집하려면 Runbook 편집을 선택합니다. 그렇지 않으면 확인을 선택합니다.

  5. 새 Runbook이 자동화 계정의 Runbook 탭에 표시됩니다.

Windows PowerShell을 사용하여 스트립트 파일에서 Runbook 가져오기

Import-SmaRunbook cmdlet을 사용하여 워크플로가 포함된 스크립트 파일에서 새 Runbook을 만들 수 있습니다.

다음 명령 예제에서는 스크립트 파일을 기존 Runbook으로 가져온 다음 게시하는 방법을 보여 줍니다.

$webServer = 'https://MyServer'
$port = 9090
$runbookName = "Test-Runbook"
$scriptPath = "c:\runbooks\Test-Runbook.ps1"

Import-SmaRunbook -WebServiceEndpoint $webServer -Port $port -Path $scriptPath
Publish-SMARunbook -WebServiceEndpoint $webServer -Port $port -Name $runbookName

Runbook 편집

서비스 관리 자동화의 각 Runbook에는 초안 및 게시됨이라는 두 가지 버전이 있습니다. 워크플로의 초안 버전을 편집한 다음 실행할 수 있도록 게시합니다. 게시된 버전을 편집할 수 없습니다.

관리 포털을 사용하여 Runbook 편집

Azure 관리 포털에는 Runbook을 보고 편집하는 데 사용할 수 있는 편집기가 포함되어 있습니다. 편집기에서는 기본 텍스트 편집 기능 외에도 Runbook, 전역 자산 및 활동에 대한 코드를 자동으로 삽입하는 기능을 제공합니다.

  1. 관리 포털에서 자동화를 선택합니다.

  2. Runbook 탭을 선택합니다.

  3. 편집할 Runbook의 이름을 선택합니다.

  4. 작성자 탭을 선택합니다.

  5. 화면 맨 위에서 초안 을 선택하거나 화면 아래쪽의 편집 단추를 선택합니다.

  6. 필요한 편집을 수행합니다.

  7. 편집이 완료되면 저장 을 선택합니다.

  8. Runbook의 최신 초안 버전을 게시하려면 게시 를 선택합니다.

Runbook, 전역 자산 및 활동에 대한 코드를 삽입하는 단계에 필요한 탭을 선택합니다.

다음 단계에 따라 Runbook에 코드를 삽입합니다.

  1. 관리 포털 편집기에서 Runbook을 엽니다.

  2. 화면 아래쪽에서 삽입 을 선택한 다음 Runbook을 선택합니다.

  3. 가운데 열에서 삽입할 Runbook을 선택하고 오른쪽 화살표를 선택합니다.

  4. Runbook에 매개 변수가 있으면 정보를 위해 목록에 표시됩니다.

  5. 검사 단추를 선택합니다.

  6. 선택한 Runbook을 실행하는 코드가 현재 Runbook에 삽입됩니다.

  7. Runbook에 매개 변수가 필요한 경우 중괄호 <>로 둘러싸인 데이터 형식 대신 적절한 값을 제공합니다.

PowerShell을 사용하여 Automation Runbook 편집

Windows PowerShell을 사용하여 Runbook을 편집하려면 원하는 편집기를 사용하여 워크플로 편집하고 .ps1 파일에 저장합니다. Get-SMARunbookDefinition cmdlet을 사용하여 Runbook의 내용을 검색한 다음 Edit-SMARunbook cmdlet을 사용하여 기존 초안 워크플로를 수정된 워크플로로 바꿀 수 있습니다.

Windows PowerShell을 사용하여 Runbook의 내용을 검색하려면

다음 예제 명령에서는 Runbook에 대한 스크립트를 검색하고 스크립트 파일에 저장하는 방법을 보여줍니다. 이 예에서는 초안 버전이 검색됩니다. Runbook의 게시 버전을 검색할 수도 있습니다. 단, 이 버전을 변경할 수는 없습니다.

$webServer = 'https://MyServer'
$port = 9090
$runbookName = "Test-Runbook"
$scriptPath = "c:\runbooks\Test-Runbook.ps1"

$runbookDefinition = Get-SMARunbookDefinition -WebServiceEndpoint $webServer -Port $port -Name $runbookName -Type Draft
$runbookContent = $runbookDefinition.Content

Out-File -InputObject $runbookContent -FilePath $scriptPath

Windows PowerShell을 사용하여 Runbook의 내용을 변경하려면

다음 명령 예제에서는 Runbook의 기존 내용을 워크플로를 포함하는 스크립트 파일의 내용으로 바꾸는 방법을 보여 줍니다.

$webServer = 'https://MyServer'
$port = 9090
$runbookName = "Test-Runbook"
$scriptPath = "c:\runbooks\Test-Runbook.ps1"

Edit-SmaRunbook -WebServiceEndpoint $webServer -Port $port -Name $runbookName -Path $scriptPath -Overwrite
Publish-SmaRunbook -WebServiceEndpoint $webServer -Port $port -Name $runbookName -Path $scriptPath

PowerShell ISE를 사용하여 Automation Runbook 편집

Windows PowerShell ISE(통합 스크립팅 환경)는 명령을 실행하고 스크립트를 작성, 테스트 및 디버그할 수 있는 애플리케이션입니다. SMA PowerShell ISE 추가 기능을 사용하면 이 도구를 사용하여 Automation Runbook을 작성하고 테스트할 수 있습니다.

  1. Windows PowerShell ISE를 엽니다.

  2. SMA ISE 추가 기능이 ISE의 오른쪽에 표시되지 않으면 추가 기능 메뉴를 열고 SMA ISE 추가 기능을 사용하도록 설정합니다.

  3. 구성 탭에서 SMA에 로그인합니다.

  4. Runbook 탭을 선택합니다. SMA Runbook 목록이 표시됩니다.

  5. 편집할 Runbook을 선택하고 다운로드를 선택합니다. 그러면 SMA에서 Runbook의 로컬 복사본이 다운로드됩니다.

  6. 열기를 선택합니다. 그러면 Runbook이 있는 새 탭이 만들어집니다.

  7. Runbook을 적절하게 변경합니다.

  8. 초안 업로드를 선택하여 Runbook을 SMA로 보냅니다. 그러면 Runbook의 기존 초안 버전이 덮어쓰기 됩니다.

  9. Runbook의 최신 초안 버전을 게시하려면 초안 게시를 선택합니다.

Runbook 게시

Runbook을 만든 후에는 Runbook 작업자가 실행할 수 있도록 Runbook을 게시해야 합니다. Service Management Automation의 각 Runbook에는 초안 버전과 게시된 버전이 있습니다. 게시된 버전만 실행할 수 있으며 초안 버전만 편집할 수 있습니다. 초안 버전을 변경해도 게시된 버전은 영향을 받지 않습니다. 초안 버전을 사용할 수 있게 만들 준비가 되면 게시합니다. 그러면 게시된 버전을 초안 버전으로 덮어씁니다.

관리 포털을 사용하여 Runbook 게시

  1. 자동화 작업 영역을 선택합니다.

  2. 화면 맨 위에서 Runbook을 선택합니다.

  3. 편집할 Runbook을 찾아서 해당 이름을 클릭합니다.

  4. 화면 맨 위에서 작성자를 선택합니다.

  5. 초안을 선택합니다.

  6. 화면 아래쪽에서 게시를 선택합니다.

  7. 확인 메시지에서 예를 선택합니다.

PowerShell을 사용하여 Runbook 게시

Publish-SmaRunbook을 사용하여 Windows PowerShell로 Runbook을 게시할 수 있습니다. 다음 명령 예제에서는 Runbook을 게시하는 방법을 보여 줍니다.

$webServer = 'https://MyServer'
$port = 9090
$runbookPath = 'c:\runbooks\Sample-TestRunbook.ps1'
$runbookName = 'Test-Runbook'

Publish-SmaRunbook -WebServiceEndpoint $webServer -Port $port -Name $runbookName

PowerShell ISE를 사용하여 Runbook 게시

Windows PowerShell ISE(통합 스크립팅 환경)는 명령을 실행하고 스크립트를 작성, 테스트 및 디버그할 수 있는 애플리케이션입니다. SMA PowerShell ISE 추가 기능을 사용하면 이 도구를 사용하여 Automation Runbook을 작성하고 테스트할 수 있습니다.

  1. Windows PowerShell ISE를 엽니다.

  2. SMA ISE 추가 기능이 ISE의 오른쪽에 표시되지 않으면 추가 기능 메뉴를 열고 SMA ISE 추가 기능을 사용하도록 설정합니다.

  3. 구성 탭에서 SMA에 로그인합니다.

  4. Runbook 탭을 선택합니다. SMA Runbook 목록이 표시됩니다.

  5. Runbook을 선택하고 초안 게시 를 선택하여 Runbook의 최신 초안 버전을 게시합니다.

Runbook 테스트

Runbook의 게시된 버전을 그대로 유지하면서 Service Management Automation에서 Runbook의 초안 버전을 테스트할 수 있습니다. 이를 통해 게시된 버전을 바꾸기 전에 Runbook이 올바르게 작동하는지 확인할 수 있습니다.

Runbook을 테스트할 때 초안 Runbook이 실행되며 해당 Runbook에서 수행하는 모든 작업이 완료됩니다. 작업 기록은 만들어지지 않지만 OutputWarning and Error 스트림이 테스트 출력 창에 표시됩니다. Verbose Stream 에 대한 메시지는 $VerbosePreference variableContinue로 설정된 경우에만 출력 창에 표시됩니다.

Runbook을 테스트할 때 워크플로는 계속 정상적으로 실행되며 환경의 리소스에 대한 작업도 진행됩니다. 따라서 비프로덕션 리소스에서만 Runbook을 테스트해야 합니다.

Service Management Automation에서 Runbook 테스트

Runbook을 테스트하려면 관리 포털에서 Runbook의 초안 버전을 엽니다. 화면 아래쪽에서 테스트 단추를 선택하여 테스트를 시작합니다.

출력 창 아래의 단추를 사용하여 테스트하는 동안 Runbook을 중지하거나 일시 중단할 수 있습니다. Runbook을 일시 중단하는 경우 일시 중단하기 전에 현재 작업을 완료합니다. Runbook이 일시 중단되면 중지하거나 다시 시작할 수 있습니다.

PowerShell ISE를 사용하여 Runbook 테스트

PowerShell ISE 추가 기능은 Get-SMACredential 및 Set-SMAVariable 같은 표준 작업을 에뮬레이트하는 cmdlet을 제공하므로 다른 스크립트와 마찬가지로 로컬 컴퓨터에서 Runbook을 테스트할 수 있습니다.

전역 자산과 해당 값은 로컬 테스트에 사용할 automation 그룹에서 다운로드됩니다. 자산 탭에서 이러한 값을 검사하거나 변경할 수 있습니다 . 암호화된 값은 주황색으로 표시되며 해당 값은 다운로드되지 않습니다. 로컬 테스트에서 이러한 자산을 사용하려면 로컬에서 해당 값을 설정해야 합니다.

SMA에서 Runbook을 테스트하려면 SMA 에서 테스트 초안을 선택합니다. 새 창이 열립니다. 새 작업 시작을 선택하여 테스트를 시작합니다. 창에 출력이 표시됩니다.

Automation Runbook 샘플

다음 Runbook은 기법 및 모범 사례를 보여 주기 위해 Service Management Automation과 함께 샘플 Runbook으로 제공되며, Windows Server용 Microsoft Azure 팩의 Automation 확장에서 사용할 수 있습니다.

Runbook 이름 설명
Sample-Deleting-VMCloud-Subscription 사용자가 VM 클라우드 구독을 삭제할 때 Runbook을 트리거하는 데 유용한 시나리오를 보여 줍니다.
Sample-Managing-Azure Microsoft Azure 구독에 연결하고 Microsoft Azure PowerShell 모듈을 사용하여 기본 작업을 수행하는 방법을 보여 줍니다.
Sample-Managing-ConfigurationManager Configuration Manager에 연결하는 Service Management Automation 기능을 보여 줍니다.
Sample-Managing-DataProtectionManager DPM(Data Protection Manager) 서버에 연결하고 DPM 서버에서 검색된 디스크에 대한 정보를 확인하는 방법을 보여 줍니다.
Sample-Managing-MySQLServers 호스트 서버 목록을 검색하는 데 사용할 보안 토큰을 검색하는 방법을 보여 줍니다.
Sample-Managing-OperationsManager System Center Operations Manager에 연결하는 Service Management Automation 기능을 보여 줍니다.
Sample-Managing-Orchestrator System Center Orchestrator에 연결하고 기존 인프라를 사용하기 위해 Orchestrator Runbook을 시작하는 방법을 보여줍니다.
Sample-Managing-Plans 새 계획을 만들고 정의된 할당량이 있는 SQL Server 서비스를 새 계획에 추가하는 방법을 보여 줍니다.
Sample-Managing-ServiceBusClouds 서비스 버스 클라우드 서버에 연결하고 생성된 네임스페이스에 대한 정보를 확인하는 방법을 보여 줍니다.
Sample-Managing-SQLServers 새 서버 그룹을 만들고 SQL 호스트 서버를 추가하는 방법을 보여 줍니다.
Sample-Managing-UserAccounts Microsoft Azure Pack에서 만들어지고 관리자 사용자 확장에 대한 관리 포털에 표시되는 Windows Server용 Microsoft Azure 팩에서 사용자를 만드는 방법을 보여 줍니다. 그러나 이 사용자는 이 샘플에 포함되지 않은 테넌트의 관리 포털에 액세스하기 위해 인증 공급자(예: AuthSite)에 통합되어야 합니다.
Sample-Managing-VirtualMachineManager VMM(Virtual Machine Manager) 서버에 연결하고 VMM 서버 라이선스 정보를 확인하는 방법을 보여줍니다.
Sample-Managing-VMClouds Service Provider Foundation 서버의 데이터베이스 연결 정보 및 Service Provider Foundation에서 관리하는 VMM 서버 개체 정보에 액세스하는 방법을 보여 줍니다.
Sample-Managing-WebSiteCloud 웹 사이트 클라우드 컨트롤러 서버에 연결하고 서버에 배포된 웹 사이트 클라우드에 대한 정보를 확인하는 방법을 보여 줍니다.
Sample-Modify-VMCloud-Subscription 테넌트 또는 관리자가 VM 클라우드 구독을 일시 중단 또는 활성화할 때 Runbook을 트리거하는 데 유용한 시나리오를 보여 줍니다.
Sample-Using-Activities 활동을 사용하는 Service Management Automation 기능을 보여 줍니다.
Sample-Using-Checkpoints Service Management Automation에서 검사점을 사용하는 기능을 보여 줍니다.
Sample-Using-Connections Service Management Automation에서 연결을 사용하여 원격 시스템에 연결하는 기능을 보여 줍니다.
Sample-Using-Credentials 자격 증명을 사용하는 Service Management Automation의 기능을 보여 주고, Service Management Automation Runbook이 실행 중인 사용자를 출력합니다. 그런 다음 'ServerName' 서버에 연결하여 서버에 액세스하고 있는 'SampleCredential'에 지정된 사용자를 출력합니다.
Sample-Using-Modules Runbook의 모듈을 가져오는 방법을 보여 주며 'ServerName' 서버에서 기존에 가져온 모듈 수를 출력합니다. 그런 다음 'ModulePath'에 지정된 모듈을 가져오고 새로 가져온 모듈에 해당하는 새 모듈 수 및 정보를 출력합니다.
Sample-Using-RunbookParameters Runbook의 입력 매개 변수를 사용하고 매개 변수가 필요한지 여부를 지정하고 기본 매개 변수 값을 지정하고 나중에 워크플로에서 매개 변수 값을 사용하는 방법을 보여 줍니다.
Sample-Using-Runbooks Runbook을 다른 Runbook 내에서 호출하는 방법을 보여 줍니다.
Sample-Using-SuspendWorkflow Runbook을 강제로 일시 중단하는 방법을 보여 줍니다. 이는 특정 사용자로부터 로그아웃 승인을 받는 것과 같이 Runbook을 계속하기 전에 수동 단계가 필요한 경우에 유용할 수 있습니다. 수동 단계를 완료한 후 일시 중단된 Runbook을 수동으로 다시 시작하여 Runbook을 계속 진행합니다.
Sample-Using-Variables 변수를 사용하는 Service Management Automation 기능을 보여 줍니다.
Sample-Using-VMCloud-Automation Service Provider Foundation 이벤트의 초기에 Runbook을 트리거하는 데 유용한 시나리오를 보여 줍니다.

다음 단계

  • 다른 Runbook에서 Runbook을 호출하는 방법에 대해 읽어 보세요.
  • 통합 모듈을 사용하는 방법을 어봅니다.