서비스 관리 자동화 Runbook 작성
서비스 관리 자동화 및 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 만들기
관리 포털에서 새로 만들기, App Services, Automation, Runbook, 빠른 만들기를 선택합니다.
필요한 정보를 입력하고 만들기를 선택합니다. Runbook 이름은 문자로 시작해야 하며 문자, 숫자, 언더바, 대시 등이 포함될 수 있습니다.
지금 Runbook을 편집하려면 Runbook 편집을 선택합니다. 그렇지 않으면 확인을 선택합니다.
새 Runbook이 Runbook 탭에 표시됩니다.
파일에서 Runbook 가져오기
관리 포털에서 자동화 를 선택한 다음 자동화 계정을 선택합니다.
가져오기를 선택합니다.
파일 찾아보기를 선택하고 가져올 스크립트 파일을 찾습니다.
지금 Runbook을 편집하려면 Runbook 편집을 선택합니다. 그렇지 않으면 확인을 선택합니다.
새 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, 전역 자산 및 활동에 대한 코드를 자동으로 삽입하는 기능을 제공합니다.
관리 포털에서 자동화를 선택합니다.
Runbook 탭을 선택합니다.
편집할 Runbook의 이름을 선택합니다.
작성자 탭을 선택합니다.
화면 맨 위에 있는 초안을 선택하거나 화면 아래쪽의 편집 단추를 선택합니다.
필요한 편집을 수행합니다.
편집이 완료되면 저장을 선택합니다.
Runbook의 최신 초안 버전을 게시하려면 게시를 선택합니다.
Runbook, 전역 자산 및 활동에 대한 코드를 삽입하는 단계에 필요한 탭을 선택합니다.
다음 단계에 따라 Runbook에 코드를 삽입합니다.
관리 포털 편집기에서 Runbook을 엽니다.
화면 아래쪽에서 삽입을 선택한 다음 Runbook을 선택합니다.
가운데 열에서 삽입할 Runbook을 선택하고 오른쪽 화살표를 선택합니다.
Runbook에 매개 변수가 있으면 정보용으로 표시됩니다.
확인 단추를 선택합니다.
선택한 Runbook을 실행하는 코드가 현재 Runbook에 삽입됩니다.
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을 작성하고 테스트할 수 있습니다.
Windows PowerShell ISE를 엽니다.
SMA ISE 추가 기능이 ISE의 오른쪽에 표시되지 않으면 추가 기능 메뉴를 열고 SMA ISE 추가 기능을 사용하도록 설정합니다.
구성 탭에서 SMA에 로그인합니다.
Runbook 탭을 선택합니다. SMA Runbook 목록이 표시됩니다.
편집할 Runbook을 선택하고 다운로드를 선택합니다. 그러면 SMA에서 Runbook의 로컬 복사본이 다운로드됩니다.
열기를 선택합니다. 그러면 Runbook이 있는 새 탭이 만들어집니다.
Runbook에 필요한 변경 내용을 적용합니다.
초안 업로드를 선택하여 Runbook을 SMA로 보냅니다. 그러면 Runbook의 기존 초안 버전이 덮어쓰입니다.
Runbook의 최신 초안 버전을 게시하려면 초안 게시를 선택합니다.
Runbook 게시
Runbook을 만든 후에는 Runbook 작업자가 실행할 수 있도록 Runbook을 게시해야 합니다. 서비스 관리 자동화의 각 Runbook에는 초안 및 게시된 버전이 있습니다. 게시됨 버전만 실행할 수 있으며 초안 버전만 편집할 수 있습니다. 게시됨 버전은 초안 버전 변경 내용의 영향을 받지 않습니다. 초안 버전을 사용할 수 있게 만들 준비가 되면 게시합니다. 그러면 게시된 버전을 초안 버전으로 덮어씁니다.
관리 포털을 사용하여 Runbook 게시
자동화 작업 영역을 선택합니다.
화면 맨 위에서 Runbook을 선택합니다.
편집할 Runbook을 찾아서 해당 이름을 클릭합니다.
화면 맨 위에서 작성자를 선택합니다.
초안을 선택합니다.
화면 아래쪽에서 게시를 선택합니다.
확인 메시지에 대해 예를 선택합니다.
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을 작성하고 테스트할 수 있습니다.
Windows PowerShell ISE를 엽니다.
SMA ISE 추가 기능이 ISE의 오른쪽에 표시되지 않으면 추가 기능 메뉴를 열고 SMA ISE 추가 기능을 사용하도록 설정합니다.
구성 탭에서 SMA에 로그인합니다.
Runbook 탭을 선택합니다. SMA Runbook 목록이 표시됩니다.
Runbook을 선택하고 초안 게시를 선택하여 Runbook의 최신 초안 버전을 게시합니다.
Runbook 테스트
게시된 Runbook 버전을 변경하지 않고 서비스 관리 자동화에서 Runbook의 초안 버전을 테스트할 수 있습니다. 이렇게 하면 게시된 버전을 바꾸기 전에 Runbook이 제대로 작동하는지 확인할 수 있습니다.
Runbook을 테스트할 때는 Runbook 초안이 실행되며 수행하는 모든 작업이 완료됩니다. 작업 기록이 만들어지지 않지만 출력 및 경고 및 오류 스트림이 테스트 출력 창에 표시됩니다. 자세한 정보 표시 스트림에 대한 메시지는 $VerbosePreference 변수가 계속으로 설정된 경우에만 출력 창에 표시됩니다.
Runbook을 테스트할 때는 워크플로를 정상적으로 실행하고 환경의 리소스에 대해 모든 작업을 수행합니다. 따라서 비프로덕션 리소스에서만 Runbook을 테스트해야 합니다.
서비스 관리 자동화에서 Runbook 테스트
Runbook을 테스트하려면 관리 포털에서 Runbook의 초안 버전을 엽니다. 화면 아래쪽에서 테스트 단추를 선택하여 테스트를 시작합니다.
Runbook이 출력 창 아래의 단추로 테스트되는 동안 Runbook을 중지하거나 일시 중단할 수 있습니다. Runbook을 일시 중단하는 경우 일시 중단하기 전에 현재 작업을 완료합니다. Runbook이 일시 중단되면 중지하거나 다시 시작할 수 있습니다.
PowerShell ISE를 사용하여 Runbook 테스트
PowerShell ISE 추가 기능은 Get-SMACredential 및 Set-SMAVariable과 같은 표준 작업을 에뮬레이트하는 cmdlet을 제공하므로 다른 스크립트와 마찬가지로 로컬 컴퓨터에서 Runbook을 테스트할 수 있습니다.
글로벌 자산 및 해당 값은 로컬 테스트에 사용할 자동화 그룹에서 다운로드됩니다. 자산 탭에서 이러한 값을 검사하거나 변경할 수 있습니다. 암호화된 값은 주황색으로 표시되며 해당 값은 다운로드되지 않습니다. 로컬 테스트에서 이러한 자산을 사용하려면 해당 값을 로컬로 설정해야 합니다.
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에 연결하는 서비스 관리 자동화의 기능을 보여 줍니다. |
Sample-Managing-DataProtectionManager | DPM(Data Protection Manager) 서버에 연결하고 DPM 서버에서 검색된 디스크에 대한 정보를 확인하는 방법을 보여 줍니다. |
Sample-Managing-MySQLServers | 호스트 서버 목록을 검색하는 데 사용할 보안 토큰을 검색하는 방법을 보여 줍니다. |
Sample-Managing-OperationsManager | System Center Operations Manager에 연결하는 서비스 관리 자동화의 기능을 보여 줍니다. |
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 | 활동을 사용하는 서비스 관리 자동화의 기능을 보여 줍니다. |
Sample-Using-Checkpoints | 서비스 관리 자동화에서 검사점을 사용하는 기능을 보여 줍니다. |
Sample-Using-Connections | 연결을 사용하여 원격 시스템에 연결하는 서비스 관리 자동화의 기능을 보여 줍니다. |
Sample-Using-Credentials | 자격 증명을 사용하는 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을 호출하는 방법에 대해 알아봅니다.
- 통합 모듈을 사용하는 방법에 대해 알아봅니다.