Microsoft MVP성태의 닷넷 이야기
개발 환경 구성: 374. Azure - Runbook 기능 소개 [링크 복사], [링크+제목 복사],
조회: 13507
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
(연관된 글이 3개 있습니다.)

Azure - Runbook 기능 소개

Azure에는 "Azure Automation"이라고도 알려진, 말 그대로 Auzre의 기능들을 자동화할 수 있는 Runbook이라는 기능이 있습니다.

Starting a runbook in Azure Automation
; https://docs.microsoft.com/en-us/azure/automation/automation-starting-a-runbook

Getting Started With Azure Automation - Runbook Management
; https://azure.microsoft.com/en-us/blog/azure-automation-runbook-management/

Runbook 기능의 구조는 대략 다음과 같습니다.

Resource Group (리소스 그룹)
    - Automation Accounts (Automation 계정)
        - Runbook

자동화 스크립트이기 때문에, 당연히 권한이 있는 사용자의 계정으로 실행해야 하는데 이를 위해 "Automation Accounts"가 필요합니다. 얼핏 보면, C# 프로그램에서 Azure를 접근하기 위해 계정이 필요했던 것과 유사합니다.

C# - API를 사용해 Azure에 접근하는 방법
; https://www.sysnet.pe.kr/2/0/11480

실제로, 자동화 스크립트(Runbook)을 실행하기 위한 계정 등록을 Azure Portal의 "Automations Accounts(Automation 계정)" 메뉴에서 할 수 있습니다. (기본적으로 보이지 않기 때문에 "All services" 메뉴를 통해 등록해야 합니다.)

일단 Account를 등록하면 해당 리소스 그룹에 다음과 같이 "Automation Accounts" 항목이 생성됩니다.

azure_runbook_1.png

선택하고 들어가면, 기본적으로 "PROCESS AUTOMATION(프로세스 자동화)" / "Runbooks" 메뉴에 다음과 같이 5개 정도의 runbook 예제가 등록된 것을 볼 수 있고 원한다면 "Add a runbook(Runbook 추가)" 버튼을 이용해 자신만의 스크립트를 등록할 수 있습니다.

azure_runbook_2.png

Workflow 형태를 비롯해 Python과 PowerShell 유형을 지원하는데 테스트를 위해 간단하게 다음과 같은 코드로만 만들고,

Write-Output "TEST"

게시한 후 실행을 하면 완료 로그에 "TEST" 글자가 찍힌 것을 확인할 수 있습니다.




작성한 Runbook은 Azure Portal을 통해 직접 실행하거나, Schedule 또는 Webhook으로 접근 가능하게 등록할 수 있습니다. Webhook의 경우 등록 순간에 다음과 같은 식의 고유 URL을 복사할 수 있도록 해주고, (이 URL은 등록 순간에만 공개되므로 보관하고 있어야 합니다.)

https://s4events.azure-automation.net/webhooks?token=1%2fkxy...[생략]...g%3d

이후 외부에서 해당 Webhook URL을 POST 방식으로 호출하면 연관된 runbook이 실행됩니다.

Starting an Azure Automation runbook with a webhook
; https://docs.microsoft.com/en-us/azure/automation/automation-webhooks

간단하게 이 경우에도 PowerShell을 이용해 다음과 같이 호출해 볼 수 있습니다.

PS > $uri = "https://s4events.azure-automation.net/webhooks?token=1%2...[생략]...%3d"
PS > $response = Invoke-RestMethod -Method Post -Uri $uri
PS > $response
JobIds
------
{f0305eeb-d799-4006-9c80-f1dbce6cccc6}




이 정도면 ^^ 대충 개념이 잡히시죠? 아래의 글을 읽어 보시면 runbook의 활용 방안을 좀 더 넓히실 수 있을 것입니다.

[VM] 수백대의 가상머신을 예약된 시간에 켜고 끄는 방법을 알아보자 ! (Automation + OMS + SendGrid)
; http://cloud.syncrofusion.com/?page_id=4&uid=217&mod=document




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]

[연관 글]






[최초 등록일: ]
[최종 수정일: 5/2/2018]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 46  47  48  49  50  51  52  53  54  55  56  57  58  [59]  60  ...
NoWriterDateCnt.TitleFile(s)
12158정성태2/25/202010374디버깅 기술: 165. C# - Marshal.GetIUnknownForObject/GetIDispatchForObject 사용 시 메모리 누수(Memory Leak) 발생파일 다운로드1
12157정성태2/25/202010312디버깅 기술: 164. C# - Marshal.GetNativeVariantForObject 사용 시 메모리 누수(Memory Leak) 발생 및 해결 방법파일 다운로드1
12156정성태2/25/20209634오류 유형: 595. LINK : warning LNK4098: defaultlib 'nafxcw.lib' conflicts with use of other libs; use /NODEFAULTLIB:library
12155정성태2/25/20208896오류 유형: 594. Warning NU1701 - This package may not be fully compatible with your project
12154정성태2/25/20208713오류 유형: 593. warning LNK4070: /OUT:... directive in .EXP differs from output filename
12153정성태2/23/202011423.NET Framework: 898. Trampoline을 이용한 후킹의 한계파일 다운로드1
12152정성태2/23/202011181.NET Framework: 897. 실행 시에 메서드 가로채기 - CLR Injection: Runtime Method Replacer 개선 - 세 번째 이야기(Trampoline 후킹)파일 다운로드1
12151정성태2/22/202011723.NET Framework: 896. C# - Win32 API를 Trampoline 기법을 이용해 C# 메서드로 가로채는 방법 - 두 번째 이야기 (원본 함수 호출)파일 다운로드1
12150정성태2/21/202011567.NET Framework: 895. C# - Win32 API를 Trampoline 기법을 이용해 C# 메서드로 가로채는 방법 [1]파일 다운로드1
12149정성태2/20/202011334.NET Framework: 894. eBEST C# XingAPI 래퍼 - 연속 조회 처리 방법 [1]
12148정성태2/19/202012584디버깅 기술: 163. x64 환경에서 구현하는 다양한 Trampoline 기법 [1]
12147정성태2/19/202011189디버깅 기술: 162. x86/x64의 기계어 코드 최대 길이
12146정성태2/18/202011417.NET Framework: 893. eBEST C# XingAPI 래퍼 - 로그인 처리파일 다운로드1
12145정성태2/18/202010649.NET Framework: 892. eBEST C# XingAPI 래퍼 - Sqlite 지원 추가파일 다운로드1
12144정성태2/13/202010679.NET Framework: 891. 실행 시에 메서드 가로채기 - CLR Injection: Runtime Method Replacer 개선 - 두 번째 이야기파일 다운로드1
12143정성태2/13/20208722.NET Framework: 890. 상황별 GetFunctionPointer 반환값 정리 - x64파일 다운로드1
12142정성태2/12/202010482.NET Framework: 889. C# 코드로 접근하는 MethodDesc, MethodTable파일 다운로드1
12141정성태2/10/202010039.NET Framework: 888. C# - ASP.NET Core 웹 응용 프로그램의 출력 가로채기 [2]파일 다운로드1
12140정성태2/10/20209896.NET Framework: 887. C# - ASP.NET 웹 응용 프로그램의 출력 가로채기파일 다운로드1
12139정성태2/9/202011291.NET Framework: 886. C# - Console 응용 프로그램에서 UI 스레드 구현 방법
12138정성태2/9/202014053.NET Framework: 885. C# - 닷넷 응용 프로그램에서 SQLite 사용 [6]파일 다운로드1
12137정성태2/9/20209245오류 유형: 592. [AhnLab] 경고 - 디버거 실행을 탐지했습니다.
12136정성태2/6/20209651Windows: 168. Windows + S(또는 Q)로 뜨는 작업 표시줄의 검색 바가 동작하지 않는 경우
12135정성태2/6/202013294개발 환경 구성: 468. Nuget 패키지의 로컬 보관 폴더를 옮기는 방법 [2]
12134정성태2/5/202013431.NET Framework: 884. eBEST XingAPI의 C# 래퍼 버전 - XingAPINet Nuget 패키지 [5]파일 다운로드1
12133정성태2/5/202010685디버깅 기술: 161. Windbg 환경에서 확인해 본 .NET 메서드 JIT 컴파일 전과 후 - 두 번째 이야기
... 46  47  48  49  50  51  52  53  54  55  56  57  58  [59]  60  ...