Azure에서 재사용 가능한 윈도우용 VM 이미지 만들기(Windows Sysprep)

VM 이미지를 이용하여 동일한 환경으로 구성된 VM을 여러 대 만들고자 하는 경우가 종종 있으실 것입니다.
vm without sysprep
위의 그림은 기존에 생성해둔 VM 이미지를 이용하여 동일한 환경을 가지는 VM 을 생성한 결과입니다. 하지만 새롭게 생성한 VM의 hostname이 기존 VM의 hostname과 동일하다는 문제가 있습니다. 이는 새롭게 만든 VM에 기존의 정보가 남아있기 때문에 발생하는 문제입니다.

이를 해결하기 위해서는 Windows Sysprep 이라는 과정이 필요합니다. (리눅스에서는 이 과정을 Deprovision 이라고 부릅니다.)
이번 포스트에서는 Windows Sysprep 방법을 알아보려고 합니다.

Windows Server 2012 Datacenter 에 IIS 웹서버가 설치된 VM을 구성하고, 이미지를 캡쳐한 후, 동일한 환경의 VM을 생성해보는 과정을 보여드리려고 합니다.  이번 포스트는 Azure 구포탈을 기준으로 작성되었습니다. 영문 버전의 가이드 문서를 확인하시려면 링크를 참고하시기 바랍니다.

Step 1. VM 구성하기

1. VM 만들기
: Azure 포탈에 로그인 한 후에 좌측 하단에 위치한 "새로만들기 -> 계산 -> 가상컴퓨터 -> 빨리만들기"를 선택하신 후, 생성하고자 하는 VM의 정보를 입력하시기 바랍니다.

vm create

저는 Windows Server 2012 Datacenter 이미지를 이용하여 A1 크기의 VM을 생성하였습니다. VM 생성이 완료되기까지 보통 10분 정도가 소요됩니다.

2. VM 접속
: 생성한 VM의 상태가 실행 중 으로 바뀌면 "연결" 버튼을 클릭하여 VM에 접속하시기 바랍니다.

vm connect

원격 데스크톱 연결 파일(.rdp)이 다운로드 되면 이를 실행합니다.
vm rdp

VM에 접속하기 위해서는 추가 정보를 입력해야 합니다. 이때 ID 앞에 local\ 를 추가하여 입력하시기 바랍니다.

vm verification2

인증서 확인 창에서 예(Y) 버튼을 누르고 계속 진행하시기 바랍니다.

vm certification check

3. VM 구성
: VM에 IIS 웹서버를 설치해볼 차례입니다. 우선 "Server Manager -> Add Roles and Features"를 선택하시기 바랍니다.

vm servermanager

IIS 웹서버를 설치하기 위해서 "Server Roles" 탭에서 "Web Server(IIS)"의 체크박스를 선택하신 후 나머지 과정을 진행하시면 됩니다.

vm select IIS vm check IIS add features vm IIS confirm

4. 끝점(Endpoint) 설정
: 끝점 설정이란, 생성된 VM에 접속이 가능하도록 포트번호(80 포트)를 열어주는 작업입니다. 끝점을 설정하기 위해 Azure Portal에서 생성한 VM에 접속하세요. "생성한 VM 선택 -> 끝점 -> 추가"에서 끝점을 설정하실 수 있습니다.

vm endpoint setup1

기본값으로 선택되어 있는 옵션인 '독립형 끝점 추가'를 선택하고 다음 버튼을 눌러 계속 진행하시기 바랍니다.

vm endpoint setup2

아래 그림과 같이 끝점의 세부 정보를 입력하시기 바랍니다.

vm endpoint setup3

생성한 VM의 대쉬보드에서 "DNS 이름"란에 있는 주소를 이용하여 웹 서버로 동작하고 있는 VM을 확인하실 수 있습니다.

vm endpoint setup6 vm endpoint setup4

Step 2. 재사용 가능한 윈도우용 VM 이미지 만들기(Windows Sysprep)

1. 관리자 권한으로 명령 프롬프트 실행
기존 시스템에서 가지고 있는 정보를 삭제하여 재사용할 수 있는 이미지로 만드는 과정을 Sysprep이라고 합니다.  명령 프롬프트를 관리자 권한으로 실행함으로써 Windows Sysprep 을 진행하실 수 있습니다. 검색창에 "Command Prompt"를 검색하신 후, "Run as administrator" 로 실행하시기 바랍니다.

vm command prompt vm command prompt admin

2. Sysprep 수행
: sysprep.exe 파일이 저장된 위치로 이동하기 위해서, 명령 프롬프트창에 "cd %windir%\system32\sysprep" 입력하시기 바랍니다.

vm sysprep

명령 프롬프트창에 "sysprep.exe" 입력하세요.

vm sysprep2

sysprep.exe 도구가 실행되면, Windows를 구성하고 실행하는 데 필요한 작업을 수행하는 "OOBE"를 선택하시고, "Generalize" 도 반드시 체크하시기 바랍니다. 마지막으로 Sysprep 작업이 끝난 후 VM이 종료될 수 있도록 "Shutdown" 옵션을 선택하시기 바랍니다.

vm sysprep3

Sysprep이 수행되고 난 후에 VM이 종료되기 까지 최대 20분 정도가 소요될 수 있으며, VM의 상태는 Azure Portal에서 확인하실 수 있습니다.

3. VM 이미지 캡쳐
: Sysprep이 수행된 후 VM이 중지되었다면, 이제 VM 이미지를 캡쳐하기 위한 모든 준비를 완료하신 것 입니다. 생성하셨던 VM을 선택하신 후, 우측 하단의 "캡쳐"버튼을 선택하여 VM 이미지 캡쳐를 시작하시기 바랍니다.

vm img capture

생성하셨던 VM 에 대한 설명을 간단하게 적으시고, "가상 컴퓨터에서 Sysprep를 실행했습니다" 라는 체크박스도 선택하신 후 확인 버튼을 누르시기 바랍니다.

vm img capture2

여기까지 진행하시고 나면, 기존에 생성했던 VM과 같은 환경을 가지지만 Windows의 시스템정보는 삭제된(Sysprep된) 상태의 VM 이미지가 생성되면서, 동시에 기존에 생성했던 VM이 삭제되오니 주의하시기 바랍니다.

Step 3. 생성한 이미지를 이용하여 새로운 VM 만들기

1. 캡쳐한 이미지를 이용하여 새로운 VM 생성
: 캡쳐한 이미지를 이용하여 VM을 생성해볼 차례입니다. "새로만들기 -> 계산 -> 가상컴퓨터 -> 갤러리"에서를 선택하세요.

vm create with img

좌측에 있는 메뉴 중 "내 이미지"를 선택한 후에,  캡쳐해둔 VM 이미지를 선택합니다.

vm create with img3

VM 이미지를 이용하여 새롭게 만들 "가상 컴퓨터 이름, 크기, 새 사용자 이름, 암호" 를 입력하신 후 다음 단계로 넘어가시기 바랍니다.

vm create with img4

끝점 구성이 필요하시다면 가상 컴퓨터 구성 탭에서 "끝점" 부분에 끝점 정보를 추가하실 수 있습니다.

vm create with img6

이 과정을 완료하고 나면 캡쳐한 이미지를 이용하여 기존 VM과 동일한 환경구성을 가지는 새로운 VM이 생성됩니다.

2. 새롭게 생성된 VM의 구성 정보 확인
: Sysprep이 잘 되었는지 확인하는 과정만 남았습니다. 새롭게 생성한 VM의 "대쉬보드"에 접속하여 새롭게 입력한 hostname이 반영되었는지 확인하시기 바랍니다.

vm hostname check

대쉬보드에서 확인하실 수 있는 VM의 DNS 주소를 이용하여, 새롭게 생성한 VM에 IIS 서버가 설치되어 있는지 확인합니다. (기존의 VM과 동일한 환경으로 구성되어 있기 때문에, 별도로 IIS 서버를 설치 하지 않았는데도 이미 IIS 가 설치가 되어 있음을 확인하실 수 있습니다. )

vm copied iis

다음 번 포스트에서는 Linux Deprovision 과정을 소개할 예정입니다. 감사합니다.