Azure에서 PowerShell 을 이용한 윈도우용 VM 이미지 만들기(Windows Sysprep)

재사용 가능한 VM 이미지 만들기 제 3탄!
이번 포스트는 재사용 가능한 윈도우 이미지(Windows Sysprep 이 완료된 이미지)를 이용하여 새로운 VM을 만드는 과정을 PowerShell 로 수행하는 방법을 소개해 드리려고 합니다.
그런데… PowerShell이 뭔가요? 왜 PowerShell을 이용해야 하죠? 라는 궁금증이 있으신 분들이 계실 것 같아 간략히 설명드리겠습니다.

  • PowerShell 이란?
    : 텍스트 기반의 화면에서 시스템 및 서비스 상태를 모니터링 할 수 있고 서비스의 동작을 제어할 수 있으며 레지스트리 값을 수정할 수 있는 환경을 제공해 줍니다.
  • PowerShell 을 사용하면 어떤 장점이 있죠?
    : 반복적인 작업을 손쉽게 자동화 할 수 있습니다.
    PowerShell 을 설치하고 구성하는 방법은 링크를 통해 확인하시기 바랍니다.

지난 포스트가 궁금하시다면 아래의 링크에서 확인해 보시기 바랍니다.

Windows Sysprep 과정을 진행할 VM을 생성하고 Sysprep 한 상태에서 시작하겠습니다. 즉, 지난 Windows Sysprep 포스트의 STEP1 - VM 구성하기, STEP2 - 재사용 가능한 윈도우용 VM 이미지 만들기(Windows Sysprep)과정에서 2. Sysprep 까지 완료한 상태라고 가정합니다.

시작하기에 앞서 Azure Portal에 로그인 하는 과정, 즉 PowerShell에 나의 구독 정보를 추가하는 과정이 필요합니다.

pwshell1

"Add-AzureAccount" 라는 명령어를 입력한 후, 팝업창에 정보를 입력하여 로그인을 진행하시기 바랍니다.

pwshell2

구독 정보를 입력한 후에, 미리 만들어둔 VM을 선택하는 과정이 필요합니다. 저는 vm-oringinal 이라는 이름을 가지는 VM을 미리 생성해 두었습니다.
"Get-AzureService -ServiceName vm-original" 명령어를 이용하여 미리만들어 둔 VM을 선택하시기 바랍니다.

pwshell4

VM 이미지를 캡쳐할 준비가 모두 끝나셨습니다! 이제 미리 만들어둔 VM을 중지하고, 이미지를 캡쳐해 보도록 하겠습니다.
우선 "Stop-AzureVM -ServiceName vm-original -Name vm-original" 명령어를 이용하여 VM을 중지하도록 하겠습니다.

pwshell11

팝업창이 뜨면 "예(Y)" 버튼을 눌러서 계속 진행하시기 바랍니다.

pwshell12

VM이 중지된 상태임을 확인하실 수 있습니다.
이제는 VM을 이미지로 저장해 보도록 하겠습니다.
"Save-AzureVMImage -ServiceName vm-original -Name vm-original -ImageName "vm-original" -OSState Generalized" 를 입력해 주시기 바랍니다.

pwshell13

잠시후, 아래와 같이 이미지가 저장되었다는 메세지를 확인하실 수 있습니다.

pwshell14

이제 마지막 과정만 남았습니다. 저장한 이미지를 이용하여 새로운 가상머신을 생성하는 과정입니다.
이번에는 변수를 이용하여 PowerShell을 작성해 보도록 하겠습니다. 앞에 $표시를 붙여 변수를 선언합니다.

$vmImg = Get-AzureVMImage -ImageName "vm-original"
$admin = "azureuser"
$myPwd = "비밀번호 입력"
$newVM = New-AzureVMConfig -Name "vm-copied" -InstanceSize Basic_A1 -ImageName $vmImg.ImageName
$newVM | Add-AzureProvisioningConfig -AdminUsername $admin -Password $myPwd -Windows
$newVM.ProvisionGuestAgent = $true
New-AzureVM -ServiceName vm-original -VMs $newVM -WaitForBoot -Verbose

pwshell15

위의 명령어를 입력하시면 Sysprep 된 이미지를 이용하여 새롭게 VM이 생성됩니다. Windows Sysprep이 잘 되었는지 여부는, Azure Portal의 가상컴퓨터 대쉬보드에서 확인하실 수 있습니다.

pwshell17

기존에 생성한 VM의 hostname이 아닌, 새롭게 입력한 VM의 이름과 동일한 VM이 생성 되었음을 확인하실 수 있습니다.
즉, Sysprep이 성공적으로 되었고 Sysprep된 이미지를 이용하여 Powershell로 새로운 VM도 잘 배포가 되었음을 확인하셨습니다.

긴 포스트 읽으시느라 수고 많으셨습니다. 도움이 되셨길 바랍니다.
피드백은 언제든지 댓글로 남겨주세요~!