virtualization/VMware

[VMware] vRealize Automation 8.3 ~ 멀티 테넌시의 구성 (1)

yueisu 2021. 4. 25. 11:44

오랜만입니다. 2개월 만인 거 같네요. 언제나 같은 변명입니다만... 업무가 바빴습니다.  🙂

 

오랜만인 이번 포스팅은 멀티 테넌시(멀티 조직 테넌시, Multi-organization tenancy)기능에 대해서 3회에 걸쳐 소개랄 하도록 하겠습니다.

 

vRA 7.x는 간단히 테넌트를 만들 수 있죠. 과거의 포스팅에서 소개를 했었듯 vRA 어플라이언스의 관리 UI에서 간단히 테넌트를 작성할 수 있었습니다. 작성할 테넌트는 전용 어드레스를 갖으며 브랜딩도 가능하기 때문에 독립된 사이트에서 이용자에게 서비스를 제공할 수 있었습니다. 하지만 vRA 8.x부터 프로젝트라는 개념이 등장했습니다. 프로젝트는 기본적으로 vRA 7.x의 테넌트와 같은 기능을 제공하기 때문에 프로젝트 사이에서 이용자가 섞일 염려는 없습니다. 단지 전용 어드레스나 브랜딩 같은 독립적인 요소를 반영할 수 없습니다. 같은 회사 내에서 부서별로 서비스를 제공한다면 프로젝트도 별다른 문제는 없죠. 더욱이 vRA 8.2부터는 VPZ(Virtual Private Zone) 기능이 추가되어 프로젝트별로 독립된 리소스(컴퓨팅, 네트워크, 스토리지, 이미지, 플레이버)를 구성할 수 있게 되어 보다 확실히 리소스를 격리할 수 있습니다. 하지만 그룹사나 다른 회사에 서비스를 제공할 경우는 프로젝트만으로는 조금 아쉬운 감이 있습니다. 역시나 테넌트 기능이 필요하게 되는 거죠.

물론 vRA 8에서도 멀티 테넌시 구성이 가능합니다. 단지 vRA 단독으로는 구성을 할 수 없다는 게 옥에 티랄까요. 반드시 vRSLCM과의 연계가 필요합니다. vRSLCM에는 테넌트 관리 기능을 갖추고 있어 이 기능을 유효화함으로써 vRA에서 테넌트를 구성할 수 있게 되는 겁니다. 간단한 흐름을 보자면 다음과 같습니다.

 

 

vRA 8.x의 멀티 테넌시는 도메인명을 기반으로 구성됩니다. 따라서 가장 먼저 해야 될 작업은 테넌트의 DNS 레코드와 CNAME을 작성하는 겁니다. 대상은 각 테넌트에서 서비스를 제공하는 vRA과 그 인증 서버가 되는 vIDM이 대상이 됩니다. 넵. vRA에서 테넌트를 구성한다는 것은 동시에 vIDM에서도 멀티 테넌시에 대응하도록 구성을 해줘야 된다는 거죠 테넌트에 로그인한 이용자를 vIDM 쪽에서도 테넌트별로 분리하여 인증을 실행하기 때문에 각 테넌트의 독립성이 확보되죠.

① 이용자는 테넌트 "terran.vra.kiiro2.lab"에 로그인을 시도합니다.
② vRA는 테넌트 "terran.vra.kiiro2.lab"의 로그인 계정에 대해 "terran.kiiro2.lab"에게 인증을 요구합니다.
③ vIDM은 "terran.kiiro2.lab"의 로그인 계정의 인증합니다.
④ 이용자는 테넌트 "terran.vra.kiiro2.lab"에 로그인합니다.

 

그럼 지금부터 간단히 멀티 테넌시의 구성에 대해서 소개를 하도록 하겠습니다.(여기서 소개를 하는 vRA는 simple install로 설치를 한 싱글 구성입니다)

 

vRA과  vIDM의 A 레코드가 등록된 DNS 서버에서 vIDM의 테넌트용 A 레코드를 생성합니다. 멀티 테넌시를 유효화하면 디폴트의 vIDM FQDN으로는 접근을 할 수가 없습니다.(정확히 말하자면 멀티 테넌트용 디폴트 vIDM FQDN로 리다이렉트되어집니다) 따라서 vIDM에 대해서는 2종류의 A 레코드를 생성합니다. 하나는 멀티 테넌트용 디폴트(마스터 vIDM이라고 합니다) vIDM의 A 레코드, 또하나는 테넌트용 vIDM의 A 레코드입니다. 이 포스팅에서는 디폴트 vIDM의 IP 어드레스에 대해 아래와 같은 A 레코드를 추가 생성했습니다.

starcraft.kiiro2.lab 마스터 vIDM용 A 레코드
terran.kiiro2.lab 테넌트#1용 A 레코드
zerg.kiiro2.lab 테넌트#2용 A 레코드
protoss.kiiro2.lab 테넌트#3용 A 레코드

다음에는 vRA입니다. vRA에 대해서는 멀티 테넌시용 디폴트 FQDN은 필요 없고 작성할 테넌트의 CNAME(별명)을 작성해야 합니다. 이 포스팅에서는 디폴트 vRA의 레코드에 대해 아래와 같은 CNAME을 작성했습니다.

terran.vra-23.kiiro2.lab 테넌트#1용 CNAME
zerg.vra-23.kiiro2.lab 테넌트#2용 CNAME
protoss.vra-23.kiiro2.lab 테넌트#3용 CNAME

 

DNS의 부분은 이걸로 끝입니다.

 

DNS의 레코드와 CNAME의 생성이 끝났다면 인증서를 작성합니다. 새롭게 작성하는 인증서는 복수의 도메인 이름에 대응하는 주체 대체 이름(SAN) 인증서입니다. 와일드카드 인증서를 사용하지 마세요. 왜냐하면 vRA 8부터 공인 접미사 규격과 일치하는 도메인에 대해서만 와일드 카드 인증서를 인식하 때문입니다. .local과 같은 사설 접미사의 와일드카드는 지원을 하지 않으니 주의가 필요합니다. 이걸 어겨서 멀티 테넌시 유효화에 두 번이나 실패를 했답니다. (;・∀・) 랩 환경이라면 조금 귀찮더라도 모든 주체 대체 이름을 추가해줍니다. :) 또한 인증서를 업데이트하기 전에 반드시 스냅숏을 작성하세요.

 

작성하는 인증서는 vIDM과 vRA입니다. 인증서는 vRSLCM에서 간단히 작성을 할 수 있습니다.

 

vIDM의 SAN 인증서를 작성합니다. 「Locker」의 「Certificates」에서 vIDM IP 어드레스에 대해 주체 대체 이름을 추가한 SAN 인증서를 작성했습니다.

vidm-22.kiiro2.lab 디폴트 vIDM FQDN
starcraft.kiiro2.lab 마스터 vIDM FQDN
terran.kiiro2.lab 테넌트#1용 vIDM FQDN
zerg.kiiro2.lab 테넌트#2용 vIDM FQDN
protoss.kiiro2.lab 테넌트#3용 vIDM FQDN

 

vRA의 SAN 인증서도 작성을 합니다. vRA IP 어드레스에 대해 주체 대체 이름을 추가한 SAN 인증서를 작성했습니다.

vra-23.kiiro2.lab 디폴트 vRA FQDN
terran.vra-23.kiiro2.lab 테넌트#1용 CNAME
zerg.vra-23.kiiro2.lab 테넌트#2용 CNAME
protoss.vra-23.kiiro2.lab 테넌트#3용 CNAME

 

인증서가 작성되었습니다. 새로운 인증서가 준비되었다면 인증서를 업데이트합니다. 인증서의 업데이트도 vRSLCM이라면 간단합니다.

 

먼저 vRSCLM의 「Lifecycle Operations」 → 「Environments」의 「globalenvironment」에서 vIDM의 인벤토리 동기를 실시합니다.

 

인벤토리의 동기가 끝났다면 「VIEW DETAILS」에서 「Replace Certificate」를 실행합니다.

 

순서는 간단합니다. 업데이트할 vIDM용 인증서를 선택하여 재신뢰할 제품으로 vRA를 선택합니다.

 

만약을 대비하여 vRSLCM의 스냅숏도 작성을 해주도록 합니다. ;)

 

인증서 내용에 대한 「PRECHECK」를 실시합니다.

 

PRECHECK의 결과로 "Passed"이외에 "Consent"와 "Warning"이 표시될 겁니다. "Warning"은 인증서 업데이트로 제품 사이의 재신뢰가 이루어진다는 경고이기 때문에 무시해도 문제없습니다. "Consent"는 인증서 업데이트 전에 스냅숏을 작성하기 위해 어플라이언스를 멈추겠다는 메시지이므로 동의후 인증서의 업데이트를 실행합니다.

 

vIDM의 인증서가 업데이트되어 관련된 제품과의 재신뢰가 이루어집니다. 제 경우는 30분 정도 걸렸습니다.

 

이번에는 vRA입니다. vIDM과 동일하게 먼저 인벤토리의 동기를 실시 후 업데이트할 인증서를 선택 → 「PRECHECK」를 걸쳐 인증서를 업데이트합니다. 20분 정도 걸렸습니다

 

이걸로 준비 끝입니다. 오늘은 여기까지만 하도록 하겠습니다. :) 

다음에는 멀티 테넌시를 유효화하여 테넌트를 작성하는 방법에 대해서 소개를 하도록 하겠습니다.

 

지난주이던가요? vRA 8.4가 릴리스되었습니다. 

더 이상 가볍게 IaaS를 자동화할 수 있다고 얘기할 수 없을 정도로 진화해버린 느낌입니다만 조금씩이나마 얻은 정보를 공유해 나가도록 하겠습니다.

 

그럼 다음에 뵈죠.