Azure 신규 포탈에서 재사용 가능한 리눅스 이미지 만들기(Linux Deprovision)

안녕하세요, 이번 포스트에서는 Azure 신규포탈에서 리눅스 VM 을 생성하고 Deprovision 한 후, 이미지를 이용하여 VM 을 생성하고 배포하는  과정을 소개합니다.

Azure 구 포탈에서 신규 포탈로 넘어오면서 Azure에서 리소스를 관리하는 방식이 완전히 바뀌게 됩니다. 리소스관리자(ARM, Azure Resource Manager)라는 배포모델을 사용합니다. 주요 특징으로는 리소스 그룹의 개념이 추가되어 그룹으로 솔루션에 대한 모든 서비스를 관리 할 수 있게 되었습니다. 자세한 사항은 링크를 참고하시기 바랍니다.

Step 1. VM 구성하기

1. VM 만들기

: 신규 포탈에서 VM(가상컴퓨터)를 만드는 과정입니다. 좌측 상단의 1.새로만들기를 선택한 후, 마켓플레이스에서 2.가상 컴퓨터를 선택하시기 바랍니다. 지난 포스팅과 같은 사양인 3.Ubuntu Server 14.04 LTS를 선택하도록 하겠습니다.

001_1

배포 모델 선택은 선택 되어있는 기본 값인 1.리소스 관리자 모델을 선택한 후 2.만들기 버튼을 눌러서 VM 만들기를 시작하시기 바랍니다.

select vm2_1

가상 컴퓨터(VM) 의 이름 및 사용자 정보, 리소스를 관리하기 위한 단위인 리소스 그룹을 정하는 단계입니다. 아래와 같이 기본 사항을 입력하도록 하겠습니다.

1.이름: vm-original
2.사용자이름: azureuser
3.암호: 알맞게입력
4.리소스 그룹: 새로 만들기
5.newportal-deprovision
6.위치: 동아시아 003_1

가상컴퓨터의 크기(IOPS, 데이터 디스크, 코어 수 등)를 선택하는 과정입니다. 모두보기를 선택하시면 사용 가능한 모든 크기의 가상컴퓨터 목록이 나오며 A1 표준을 선택하도록 하겠습니다.

004_1

저장소(Storage) 종류, 네트워크 정보, 모니터링 도구의 사용 여부등을 설정하는 부분입니다. 별도 변경사항이 없으시다면 확인 버튼을 눌러 계속 진행하시기 바랍니다.

005_1

새로 만들 VM 의 기본 사항 및 설정정보를 요약해서 보여주는 화면입니다. 확인 후 VM 생성을 완료하시기 바랍니다. VM 생성이 완료되기까지 약 10분 정도의 시간이 소요됩니다.

006_1

2. VM 접속

VM이 만들어 졌는지 확인하고, 접속해보도록 하겠습니다. VM에 접속하기 위해 기존에 생성해 두었던 리소스 그룹에 접속하도록 하겠습니다.

좌측 상단의 1.리소스 그룹을 선택하신 후 검색창에서 기존에 생성해 두었던 2.newportal-deprovision 을 검색하시기 바랍니다.

026_1

리소스 그룹에서 확인할 수 있는 목록 중,  컴퓨터 모양의 아이콘인 vm-original 가상 컴퓨터를 선택하세요.

027

생성한 VM의 상태가 실행중 이면 VM의 준비가 완료된 것입니다. 리눅스 VM에 접속하기 위해서는 PuTTY와 같은 별도의 프로그램이 필요합니다. 다운로드 및 실행하신 후에  아래의 화면에서 확인할 수 있는 공용 IP 주소를 이용하여 VM에 접속하시기 바랍니다.

008_1

PuTTY를 이용하여 VM에 접속하도록 하겠습니다.

1.IP address: (해당 IP 주소)
2.Port: 22
3.Connection type: SSH
4.Open 클릭

009_1

VM을 만들 때에 입력했던 아이디와 비밀번호를 입력하여 로그인하시기 바랍니다.

Step 2. 재사용 가능한 리눅스용 VM 이미지 만들기(Linux Deprovision)

1. Deprovision 수행

: 리눅스 VM 의 재사용 가능한 이미지를 만드는 과정인 Deprovision을 수행하는 과정입니다. 리눅스 VM에 PuTTY를 이용하여 접속하신 후 아래의 명령어를 입력하여 Deprovision을 수행하시기 바랍니다.

 sudo waagent -deprovision+user

VM 이미지를 캡처하고, 이미지를 이용하여 새로운 VM을 만드는 과정을 수행하기 위해서는 Azure CLI 가 필요합니다. Azure CLI란,  Azure 명령줄 인터페이스로 Microsoft Azure에서 리소스를 만들고 관리하기 위한 오픈 소스 셸 기반 명령 집합 입니다. 다음의 링크를 참고하여 Azure CLI를 설치 하신 후, 진행하시기 바랍니다.

Azure CLI를 설치하신 후에 다음의 링크를 참고하여 Azure CLI에 로그인 하고 구독을 연결하시기 바랍니다.

다음의 명령어를 이용하여 리소스 관리자 모드에 있는지 확인합니다.

 azure config mode arm

2. VM 이미지 캡쳐
VM 이미지를 캡쳐하시기 전에 현재 실행 중인 VM을 중지해야 합니다.
다음 명령을 사용하여 프로비전을 해제한 VM을 중지합니다.

  • <your-resource-group-name>: "newportal-deprovion" 을 입력하여 중지할 VM이 속한 리소스 그룹을 지정합니다.
  • <your-virtual-machine-name>: "vm-original" 을 입력하여 중지할 VM을 지정합니다.
 azure vm deallocate -g <your-resource-group-name> -n <your-virtual-machine-name>

다음 명령어를 사용하여 VM을 일반화합니다. 위에서 사용했던 값과 동일하게 리소스 그룹 이름과 VM 이름을 다시 한번 입력하시기 바랍니다.

 azure vm generalize –g <your-resource-group-name> -n <your-virtual-machine-name>

이제 다음 명령을 사용하여 이미지와 로컬 파일 템플릿을 캡처합니다.

  • <your-vhd-name-prefix>: “vm-original” 을 입력하여 VHD 이미지의 Prefix 를 지정합니다.
  • <your-template-file-name.json>: "vm-original.json" 을 입력하여 json 템플릿 파일의 이름을 지정합니다.
 azure vm capture <your-resource-group-name> <your-virtual-machine-name> <your-vhd-name-prefix> -t <your-template-file-name.json>

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

1. 캡쳐한 이미지를 이용하여 새로운 VM 생성
: 이미지를 이용하여 VM을 만드는 과정으로 1) 네트워크 리소스 생성한 후에 캡처한 이미지를 이용하여 2) 새로운 VM 을 만들어 보도록 하겠습니다.

1) 네트워크 리소스 만들기
새 VM에 대한 NIC와 가상 네트워크를 생성해야 합니다.

  • <your-new-resource-group-name>: 기존과 동일한 리소스 그룹을 이용하기 위해 “newportal-deprovision” 을 입력합니다.
  • <your-location>: "eastasia" 을 입력하여 위치를 지정합니다.
 azure group create <your-new-resource-group-name> -l <your-location>

가상네트워크를 생성하는 단계입니다.

  • <your-vnet-name>: "vm-copied-vnet" 를 입력하여 새로운 가상네트워크의 이름을 지정합니다.
 azure network vnet create <your-new-resource-group-name> <your-vnet-name> -l <your-location>

서브넷을 생성하는 과정입니다.

  • <your-subnet-name>: “vm-origin-subnet1” 를 입력하여 서브넷의 이름을 지정합니다.
 azure network vnet subnet create <your-new-resource-group-name> <your-vnet-name> <your-subnet-name>
Addres Prefix: 10.0.0.0/24 를 입력하시기 바랍니다. CIDR 표기법을 이용하여 표기된 주소 접두사를 정하는 과정입니다. 

공용 IP 주소(PIP) 를 생성하는 과정입니다.

  • <your-ip-name>: “vm-copied-pip” 를 입력하여 공용 IP 주소의 이름을 정합니다.
 azure network public-ip create <your-new-resource-group-name> <your-ip-name> -l <your-location>

네트워크 인터페이스 카드(NIC) 를 생성하는 과정입니다.

  • <your-nic-name>: “vm-copied-nic” 를 입력하여 NIC의 이름을 정합니다.
 azure network nic create <your-new-resource-group-name> <your-nic-name> -k <your-subnetname> -m <your-vnet-name> -p <your-ip-name> -l <your-location>

캡처를 하는 동안 저장한 JSON을 사용하여 이미지의 VM을 배포하려면 NIC의 ID가 필요합니다. 다음 명령을 통해 ID를 확인하실 수 있습니다.

 azure network nic show <your-new-resource-group-name> <your-nic-name>

NIC의 ID는 아래와 유사한 형태의 문자열입니다. VM 을 생성할때에 필요하기 때문에 반드시 기억해두시기 바랍니다.

019_1

2) 이미지를 이용하여 VM 만들기
캡처한 VM 이미지와 미리 저장해둔 템플릿 JSON 파일을 이용하여 새로운 VM을 생성합니다.

  • <your-new-resource-group-name>: VM이미지를 저장할 때 입력했던 리소스 그룹 이름인  “newportal-deprovision” 을 입력합니다.
  • <your-new-deployment-name>: "vm-copied" 을 입력하여 새로 만들 VM의 이름을 정합니다.
  • <your-template-file-name.json>: 미리 저장해둔 템플릿 JSON 파일의 이름인 "vm-original.json" 를 입력합니다.
 azure group deployment create <your-new-resource-group-name> <your-new-deployment-name> -f <your-template-file-name.json>

프롬프트 창에 새 VM 이름, 관리자 사용자 이름, 암호 및 이전에 만든 NIC의 ID를 입력하라고 표시됩니다.

1.vmName: vm-copied
2.adminUserName: azureuser
3.adminPassword: (관리자용 비밀번호 입력)
4.networkInterfaceId: (위에서 복사해둔 NIC ID) 020_1

2. 새롭게 생성된 VM의 구성 정보 확인
: Deprovision 이 잘 되었는지 확인하는 과정만 남았습니다. 새롭게 생성한 VM에 접속하여 hostname을 확인해 보도록 하겠습니다.

아래의 명령어를 이용하여 새롭게 생성한 VM의 IP 주소를 확인하실 수 있습니다.

 azure network public-ip show "your-new-resource-group-name" "your-ip-name"

022_1

PuTTY를 이용하여 VM에 접속합니다.

1.IP address: (해당 IP 주소)
2.Port: 22
3.Connection type: SSH
4.Open 클릭

024_1

hostname 이라는 명령어를 통해 VM의 hostname을 확인합니다.

023

deprovision이 성공적으로 수행된 것을 확인하실 수 있습니다. 이상으로 Azure 신규포탈에서 재사용 가능한 리눅스 이미지 만들기(Linux Deprovision) 과정까지 모두 소개해 드렸습니다. 지난 포스트들은 아래의 링크에서 확인하실 수 있습니다.

Azure 구포탈(ASM)

Azure 신규 포탈(ARM)