Azure Stack Development Kit 설치하기 1편

아래에 기술한 내용들은 Azure Stack Development Kit의 설치 과정에서 여러번의 시행착오를 거쳐 테스트 해보면서 경험한 내용 위주로 작성되었습니다.



0. Overview
이 포스트에서 작성하는 설치과정은 Microsoft의 Azure Stack 공식 문서를 참고하였다. Azure Stack 튜토리얼 문서는 수시로 업데이트 되고 있으며, 이 글을 쓰는 시점(2017/08/18)에 문서는 2017/07/10에 마지막 업데이트가 있었다.

전반적으로 이 문서만 보면 ASDK 설치하는데 무리가 없도록 설명이 잘 되어 있지만 간혹 중요한 스텝이 빠져있거나 UI상 바뀐 부분이 이전버전으로 나와있어 애를 먹은 경험이 있었다.

Azure Stack을 TP3 버전부터 TP3 refresh, Development Kit버전까지 열댓번을 설치해보았는데 처음에는 하드웨어 사양이 맞지 않는 등 여러가지 이유로 실패했다. 여러번 시도한 끝에 지금은 잘 설치가 된다.
(PaaS는 다 설치 해보지 못했다. SQL PaaS는 잘 동작을 한다. MySQL PaaS은 정상적으로 설치가 된 것처럼 보이지만 MySQL Hosting Server 생성이 안 된다. App Service는 두 번 시도해봤는데 모두 실패했다.)
PaaS는 차후에 설치에 성공하면 포스팅하도록 하겠다.


1. Azure Stack Development Kit 호스트 서버 하드웨어 준비
Azure Stack 공식 문서에 있는 최소 요구사양과 권장 요구사양을 반드시 준수해야 한다.
처음에 4디스크베이 서버로 했다가 중간에 실패했다. (OS디스크포함 최소 5개 디스크가 필요함)
이상한 건 설치 시작전 하드웨어 체크 스크립트는 무사히 넘어갔다가 한참 설치하는 중간에 실패하게 되는 것이다. 다행히 며칠뒤 8디스크베이 서버와 디스크를 구할 수 있어서 성공할 수 있었다.
사용 가능한 디스크인터페이스는 SAS/SATA의 HBA모드와 RAID컨트롤러를 써야할 경우 개별디스크 RAID0만 가능하다고 나와있다.
나는 SAS HBA모드로 구성했다.
처음에 디스크를 못구해서 외장스토리지의 LUN 여러개를 FC로 붙여서 시도해 보았으나 하드웨어 체크에서 실패했다.
일단 가이드에 나와있는 요건은 반드시 지키는게 좋겠다.


2. OS 설치
Windows Server 2012 R2 이상의 OS를 OS디스크에 설치한다.
경험해본 바로는 2012 R2보다는 2016을 추천한다. 나는 2012 R2로 했는데 부가적으로 설치해야하는게 많았다. (윈도우업데이트, 닷넷프레임워크 등등)
OS설치가 끝나면 인터넷연결이 가능하도록 네트워크를 세팅한다.

※ Azure Stack은 두 가지 방식으로 운영할 수 있다.
- Azure Active Directory : 인터넷 연결이 가능해야 함
       퍼블릭 Azure와 연동하여 AAD로 인증받는다.
       마켓플레이스 템플릿을 편리하게 다운로드 할 수 있다.
- ADFS : 폐쇄망에서 사용
       로컬 Active Directory에서 인증받는다.
       부가적인 PaaS 기능이나 템플릿을 모두 수동으로 업로드해야한다.

Azure Active Directory를 사용하는 방식이 편하기 때문에 필자는 이 방법으로 설치했다.


3. Azure Stack Development Kit 다운로드
Azure Stack 다운로드 사이트에서 간단한 정보를 입력하고 ASDK를 다운로드 해주는 실행프로그램을 다운받아 실행시키면 다음과 같은 창이 뜬다.


저장경로를 지정하고 다운로드한다. 용량이 크기 때문에 시간이 걸린다.
다운로드가 끝나면 몇개의 파일로 압축되어 있는데 이걸 풀어주게 되면 CloudBuilder.vhdx 파일이 보이게 된다. 역시 시간이 좀 걸린다.



4. Azure Active Directory 계정 생성
AAD와 연동하여 설치할거라서 Azure Active Directory 계정이 있어야 한다. 퍼블릭 Azure를 사용하는 유저라면 이미 Azure Active Directory 있을 것이고, 없다면 30일 트라이얼 무료계정으로 만들어도 된다.

Azure Portal에 접속하여 AAD에서 Azure Stack에서 사용할 새로운 User(앞으로 Azure Stack Service Admin 계정이라 부른다.)를 만든다. AAD에서 만든 User는 XXXX@YYYY.onmicrosoft.com 형식의 사용자 이름을 갖게 된다.
여기서 YYYY.onmicrosoft.com는 Azure Stack 공식 문서 상에서 Directory Tenant Name이라고 불리며 나중에 사용하게 되니 잘 기억해 두어야 한다.
중요한 점은 Azure Stack에서 사용할 Azure Stack Service Admin 계정 User는 반드시 Global Admin 권한을 가지고 있어야 한다.
User의 Directory Role 변경은 Azure Portal > Azure Active Directory > Users and groups - All users > "해당User" > Directory role 에서 할 수 있다.




5. CloudBuilder.vhdx 파일복사 및 asdk-installer.ps1 스크립트 다운로드
앞에서 CloudBuilder.vhdx 파일을 다운로드해둔 경로에서 C:\ 루트에 복사한다. 원본 파일은 그냥 그 경로에 내버려둔다. 나중에 처음부터 다시 설치하고 싶을때 C:\CloudBuilder.vhdx만 지우고 원래 있던걸 다시 복사해서 쓰면 새로 다운받지 않아도 된다.



ASDK Deployment 가이드에 나와있는대로 asdk-installer.ps1 파일을 다운로드하는 스크립트를 클립보드에 복사한 후 PowerShell ISE를 관리자로 실행하여 붙여넣고 실행해준다.
(간혹 PowerShell ISE에서 스크립트를 실행할때 executionpolicy 와 관련된 에러가 나는 경우가 있었다. 나는 PowerShell을 잘 모르기에 그때그때 구글링을 통해 해결했다.)



그러면 아래 그림처럼 C:\AzureStack_Installer\asdk-installer.ps1 이 다운로드 된다.



6. CloudBuilder.vhdx로 부팅하기
asdk-installer.ps1 파일이 있는 경로에 가서 스크립트를 실행한다.


스크립트를 실행하니 ASDK 배포에 필요한 여러가지 설정값을 입력할 수 있는 GUI 창이 뜬다.
(간혹 Windows Server 2012 R2 버전에서 위 명령 실행할 경우 GUI창은 제대로 떴지만 파워쉘 에러메시지가 나오는 경우가 있다. 한참을 구글링한 끝에 같은 문제를 겪고 있는는 Azure Stack MSDN포럼 질문자에게서 해답을 찾았다. WMF 5.1 패키지를 설치하고 해결되었다.)


TP3 버전까지는 이 과정이 CLI로 이루어졌다. GUI가 훨씬 편하고 실수를 줄여준다.

이 단계에서는 아직 ASDK를 배포하지 않고 C:\에 복사한 CloudBuilder.vhdx 가상디스크로 서버를 부팅하게끔 도와준다. ASDK의 모든 작업은 CloudBuilder.vhdx로 부팅한 새로운 OS에서 이루어진다. 왼쪽 네모 Prepare Environment를 눌러 다음 단계로 넘어간다.

먼저 CloudBuilder.vhdx 의 경로를 지정해준다.



다음 화면에서는 새로운 OS에서 사용할 Admin 계정과 컴퓨터이름을 입력하고 타임존을 선택한다. 고정IP를 사용할거라서 Static IP configuration을 체크했다.



다음에서는 NIC 리스트 중 인터넷연결이 가능한 NIC을 선택한다.



네트워크 IP정보를 입력한다. IP주소는 현재 OS에서 쓰던것과 같은 것을 입력해도 무방하다. CIDR 형태로 입력한다. DNS는 구글DNS를 사용하였다.


Next, Next를 누르고 마지막 화면에서 Reboot now를 누르면 재부팅이 시작되며, Azure Stack OS가 설치되어 있는 CloudBuilder.vhdx가 기본 부트디스크로 선택이 된다.




콘솔화면에서 부팅과정을 보면 다음과 같이 부트매니저가 Azure Stack OS를 우선적으로 부팅하도록 되있다.(문제가 생겨 처음부터 다시 설치하고자 할때는 원래 있던 OS로 부팅 후 다시 진행하면 된다.)
부팅과 동시에 OS 환경 설정을 해서 그런지, 윈도우로 진입하는듯 하더니 다시 한번 부팅이 이루어졌다.
두 번의 부팅이 끝나고 앞에서 지정한 로컬 Administrator 계정으로 Azure Stack OS에 로그인한다.




7. Azure Stack Development Kit 배포
Azure Stack 호스트에 진입했으면 PowerShell을 관리자권한으로 열고 다시 asdk-installer.ps1 파일을 실행한다. 원래 OS의 C:\가 Azure Stack OS의 D:\로 바뀌어 있다.
Azure Stack OS의 C:\는 CloudBuilder.vhdx이다.
따라서, 현재 상태에서 asdk-installer.ps1 경로는 D:\AzureStack_Installer\asdk-installer.ps1 이다.


같은 파일을 실행했는데 아까와는 다른 메뉴가 나왔다. Install을 누른다.



AAD연동방식으로 설치할거라서 Type에 Azure Cloud를 선택하고 AAD Directory에 4번 단계에서 확인해 두었던 Directory Tenant Name을 입력한다. YYYY.onmicrosoft.com의 형식으로 되어 있다. 로컬 Administrator의 암호를 입력하고 다음으로 넘어간다.



다시한번 사용할 NIC를 선택해 준다.


이번에는 BGPNAT01 VM에서 사용할 IP주소를 입력해야 한다. 바로 앞에서 설정되어 있는 Azure Stack 호스트 IP주소와 다른 주소이고, 반드시 같은 네트워크에 속해있어야 한다.
같은 네트워크에 속해 있기 때문에 당연히 Gateway 주소는 같다.
VLAN ID는 사용하지 않으면 비워둔다. DNS Forwarder 역시 옵션사항으로 따로 입력하지 않으면, 현재 DNS주소(구글DNS)가 DNS Forwarder로 잡힌다. Azure Stack 배포과정에서 생성될 도메인컨트롤러 VM이 DNS 서버역할을 한다.
타임서버도 입력하지 않으면 자동으로 인터넷상의 NTP서버로 잡힌다.


다음에서 NIC 확인하고 이상이 없으면 마지막 요약 화면이 나온다.


Deploy 버튼을 누르면 PowerShell 스크립트가 실행되면서 배포가 시작된다.


배포가 시작되고 잠시 뒤 Azure AD 계정을 물어본다. 4번 단계에서 만든 Azure Stack Service Admin 계정 (XXXX@YYYY.onmicrosoft.com 형식)의 사용자이름과 암호를 입력하여 인증한다.



이제부터 대략 6시간 정도 배포가 진행된다.(10K RPM HDD일 때)
중간에 한번 재부팅이 되는데, 재부팅이 되고난 후에는 로컬 Administrator 계정으로 로그인하면 아무작업도 진행되고 있지 않는 것처럼 보인다. 반드시 AzureStack\AzureStackAdmin 계정으로 로그인하여야 진행상황을 확인할 수 있다. 지금부터는 DC VM이 생성되어 Azure Stack 호스트 서버가 AD에 조인되어 있고, 모든 작업은 AzureStack\AzureStackAdmin 계정으로 접속하여 수행하게 된다. 이때 사용되는 암호는 로컬 Administrator의 암호와 동일하다.

설치가 완료되면 다음과 같은 화면을 만날 수 있다.


만약, 어떠한 이유에서든지 중간에 에러가 나면 빨간색 텍스트가 주르륵 나오면서 멈추게된다.

Azure Stack 공식 문서에 따르면 배포 스크립트에 -rerun 옵션을 주어 실행하면 에러가 난 부분부터 다시 진행이 된다고 한다.

cd c:\CloudDeployment\Setup .\InstallAzureStackPOC.ps1 -Rerun


경험상 rerun을 해도 같은 부분에서 똑같은 에러가 났다. 원인을 찾아야 하는데 쉽지가 않았다. 이런 경우 원래 물리디스크에 있었던 OS로 부팅하여 C:\CloudBuilder.vhdx를 지우고 처음부터 다시 시작해야 한다.




※ Password 만료기간을 180일로 바꾸기
Azure Stack 호스트서버에서
Group Policy Management – Forest: azurestack.local – Domains – azurestack.local
MemberServer 우클릭, Edit 클릭



Computer Configuration – Policies – Windows Settings – Security Settings – Account Policies – Password Policy에서 Maximum password age 더블클릭



Password 만료날짜를 180일로 변경




2편에서 계속 ...

Comments

Popular Posts