virtualization/VMware

[VMware] vRealize Automation 7.3 (21)

yueisu 2017. 12. 21. 00:49

(0) vRA 개요

(1) vRA 구성요소

(2) vRA 설치 - vRA어플라이언스

(3) vRA 설치 - IaaS서버

(4) vRA 초기설정 - 테넌트 작성

(5) 테넌트 구성 - AD

(6) 엔드포인트 작성

(7) 데이터 콜렉션과 패브릭 그룹 작성

(8) 머신 접두사와 네트워크 프로화일 작성

(9) 비지니스 그룹과 예약 작성

(10) 블루프린트 작성

(11) 서비스 카탈로그 작성

(12) 블루프린트의 요구

(13) 승인 정책의 설정

(14) 커스텀 속성(사용자 지정 속성)의 설정

(15) vRO 엔드포인트 작성

(16) NSX와의 통합

(17) 가상머신의 임포트

(18) 가상머신의 해제

(19) Nutanix 엔드포인트 작성

(20) vROps와의 통합

(21) 이벤트 브로커의 이용



이번에는 vRA 7.0부터 새롭게 등장한 ”이벤트 브로커(Event Broker 또는 라이프사이클의 확장=Life Cycle Extensibility이라고도 함)”에 대해서 소개하도록 하겠습니다.

“이벤트 브로커”는 6.x까지 이용되었던 Workflow Stub를 대신하여 향후 가상머신의 라이프사이클을 관리하는 방법이 됩니다.


이벤트 브로커”를 간단히 정리해보자면 유저의 요구에 의해 프로비저닝되는(또는 되어진) 가상머신의 라이프사이클과 vRO를 연결하는 것입니다.


이 "이벤트 브로커"를 활용하므로써 단순한 가상머신의 프로비저닝이나 프로비저닝되어진 가상머신의 관리를 유저에게 떠맡기는 것이 아닌 좀더 유연한 서비스를 제공할 수 있게됩니다.


예를들어...

  • 가상머신이 프로비저닝된 후에 DNS 서버에 레코드를 작성, 가상머신이 삭제되면 레코드도 삭제
  • 특정 블루프린트에서 가상머신을 프로비저닝했을 경우 특정 어플리케이션을 설치, 가상머신의 리스 기간이 만료되면 어플리케이션도 삭제
  • 특정 가상머신을 재기동하기 전에 백업이나 스냅숏을 작성

등과 같이, 보다 자동화에 가까운 레벨의 서비스를 제공할 수 있습니다.


이 "이벤트 브로커"를 실현하기 위해서는 "이벤트 서브스크립션"을 이용해야 됩니다.

이벤트 서브스크립션이란 vRA의 이벤트를 트리거로 vRO의 워크플로를 실행하도록 하는 정의(definition)라고 할 수 있습니다. 정의라고 하면 조금 딱딱하게 들릴 수도 있겠습니다만, 내용은 어떤 이벤트가 발생했을 경우는 vRO의 워크플로를 실행한다는 말입니다. 

이벤트 서브스크립션을 작성하기 위해서는 우선, "이벤트 토픽"을 지정합니다. "이벤트 토픽"은 발생하는 이벤트의 카테고리를 의미합니다. vRA 7.3에서는 약 20개의 이벤트가 준비되어있으며 그중에서도 대표적인 이벤트 토픽은 다음과 같습니다.

  • Machine lifecycle
  • Machine provisioning

 

각 이벤트 토픽은 복수의 스키마(프로퍼티-속성)로 구성되어있습니다. 이 프로퍼티를 필요에 따라 "조건"으로 구성을 합니다. 그 다음에는 어느 단계에서 vRO의 워크플로에 프로퍼티를 넘겨줄 것인지를 결정하면 이벤트 서브스크립션의 작성은 끝입니다.


이런저런 등장인물이 있다보니 설명만으로는 헷갈릴 수가 있기에 그림으로 표현을 하면 이렇습니다.

“WinSvr”란 이름의 블루프린트로 작성되는 가상머신은 프로비저닝후에 DNS 서버에 레코드를 작성하는 vRO의 워크플로를 실행하는 이벤트 브로커를 예로들어 보겠습니다.


 

간단히 이벤트 브로커를 이용하는 방법을 소개하겠습니다.

※이 이벤트 브로커 기능을 이용하기 위해서는 vRO가 엔드포인트로 추가되어있어야하며 이벤트 서브스크립션을 통해 실행하는 vRO의 워크플로가 준비되어있어야 합니다.



(21) 이벤트 브로커의 이용




① [관리] → [Event]를 클릭합니다.

 

② [Subscription]을 선택하여, [New]를 클릭합니다.

 

③ 우선 [이벤트 토픽]에서 서브스크립션에서 이용할 이벤트 토픽을 선택합니다. 이용가능한 이벤트 토픽의 종류에 대해서는 여기에서 확인할 수 있습니다. 여기서 소개하는 예로는 가상머신이 프로비저닝된 후에 DNS 서버에 A 레코드를 등록하는 방법을 소개하고자하므로 ”머신 프로비저닝”을 선택했습니다. 이벤트 토픽을 선택후 [Next]를 클릭합니다.

 

④ [조건] 탭에서는 다음의 조건을 지정합니다.

  • 블루프린트 이름에 Linux란 문자열이 포함되어있을 경우
  • 라이프사이클 이벤트가 가상머신의 프로비저닝의 경우(VMPSMasterWorkflow32.BuildingMachine)
  • 라이프사이클의 단계가 프로비저닝이 완료되었을 경우 (POST)

위의 3조건이 충족되었을 경우 이벤트 토픽이 발동됩니다.

 

⑤ [워크플로] 탭을 선택하여 순서④의 조건을 충족했을 경우 실행하는 vRO의 워크플로를 선택합니다.

※입력 파라메터가 ”payload”인 것을 주목하세요. 이 payload는 이벤트 토픽에서 생성된 스키마(속성)을 vRO에 넘겨주는 프로퍼티입니다. 이벤트 브로커를 이용할 경우는 이 payload가 100% 필요하게 됩니다. vRO의 워크플로의 처음에 이 payload가 실행되지않으면 워크플로가 정상적으로 동작하지않습니다.

 

⑥ [상세] 탭에서 필요한 정보를 입력, [Finish]를 클릭합니다.

  • 이름 : 작성하는 서브스크립션 이름입니다. 알기쉬운 이름을 지정합니다.
  • 우선순위 : 여러 서브스크립션이 존재할 경우 실행하는 순위입니다.
  • 타임아웃 : 워크플로의 실행 타임아웃치입니다. 어떤 이유로 워크플로의 실행이 종료되지않고 이 타임아웃치에 도달하면 서브스크립션은 실패합니다.
  • 블록 : 여러 서브스크립션을 순서대로 실행하도록합니다. 이 블록을 유효화하지 않으면 ”우선순위”와 ”타임아웃”이 활성화되지 않습니다.


※”블록(블로킹)”에 대해서 조금 설명을 하자면... 서브스크립션을 실행할 경우 ”블로킹”과 ”넌블로킹(non-blocking)”을 지정합니다. 하나의 이벤트 토픽에 복수의 서브스크립션이 존재할 경우, 각 서브스크립션은 동시에 실행됩니다. 이것을 막기위해 각 서브스크립션에 ”블로킹”을 설정, 우선순위를 결정합니다. ”넌블로킹”은 ”블로킹”을 지정한 서브스크립션이 실행된 뒤, 또는 타임아웃으로 서브스크립션이 실행했을 경우 실행됩니다.

 

⑦ 작성한 서브스크립션은 블루프린트와 동일, ”드래프트” 상태이므로 [공개]를 클릭합니다.

 

⑧ 공개되었다면 서브스크립션의 작성은 끝입니다.

 

⑨ 다음에는 블루프린트의 [커스터 속성]에 서브스크립션에 넘겨줄 라이프사이클용 커스텀 속성을 지정합니다. 여기서는 아래의 속성을 지정했습니다.

  • 속성명 : Extensibility.Lifecycle.Properties.VMPSMasterWorkflow32.BuildingMachine
  • 값 : __*,*

 

이 설정으로 가상머신이 프로비저닝되었을 경우의 각종 속성값이 서브스크립션에 넘어갑니다. 값의 __*,*(언더스코어언더스코어*,*)는 __*は비표시(hidden)값을, *는 표시값을 모두 넘기게 됩니다.

 

이로써 준비완료입니다. :)

 

⑩ 그렇다면 제대로 동작을 하는지 확인해보도록 하겠습니다. 이름이 Linux6인 블루프린트로부터 가상머신을 프로비저닝해봅니다.

 

⑪ 요구의 처리가 실행되고 있습니다.

 

⑫ vSphere Web Client를 확인해보도록 하죠. ”LX-VM-018″이란 가상머신이 프로비저닝중으로 IP 어드레스는 ”192.168.205.153″가 네트워크 프로화일에서 할당되어져 있습니다.

 

⑬ 가상머신의 프로비저닝이 끝난 뒤 ”Add DNS-Host”란 워크플로가 정상적으로 끝난 것을 확인할 수 있습니다. 이 ”Add DNS-Host”는 순서⑤에서 지정한 vRO의 워크플로입니다.

 

⑭ DNS 서버를 확인해보면 ”LX-VM-018″란 호스트가 ”192.168.205.153″로 레코드가 등록된 것을 확인할 수 있습니다.

 

⑮ 마지막으로 vRO를 확인해보죠. 워크플로가 정상적으로 완료된 것을 확인할 수 있습니다. 워크플로 진행중 가상머신 이름과 IP 어드레스를 vRA로부터 넘겨받은 것도 확인할 수 있답니다.

 

이로써 이벤트 브로커의 이용 방법의 소개는 끝입니다.