그냥저냥

VMware로 가상머신 템플릿 만들기 | #1 준비하기! 본문

인프라/VMware

VMware로 가상머신 템플릿 만들기 | #1 준비하기!

sync86 2025. 5. 10. 05:39
728x90
반응형

0. 들어가기 앞서...

시스템 엔지니어로 일할 때 고객사에 작업 일정이 자주 생겼다. 익숙한 작업이면 상관없지만, 익숙하지 않거나 새로운 작업이면 불안했었다. 방문하기 전에 고객사 환경과 최대한 비슷하게 구성하며 짧은 경험을 쌓아야 하는 경우가 있었다. 그래야 그나마 대응이 가능했었다. 구성 도중 에러가 발생한다면 원인 분석 및 조치를 한다거나 예외 상황을 확인하고 사전에 예방한다거나 등 고객사 작업 일정 전에 최대한 많은 테스트를 했었어야 했다. 사무실에도 그 환경이 있었으나 간단한 테스트는 집에서 VMware Workstation Pro(이하 VMware로 표기함)를 구매하여 사용하였다.

 

이 회사를 떠나고 개발자로 전직을 하면서 VMware는 사용할 일이 거의 없어졌다. 오랫동안 보지 않았다. 그러다 문뜩 바탕화면 한켠에 있는 아이콘으로 시선이 옮겨졌고, VMware 아이콘을 보게 되었다. 예전에 시스템 엔진니어로 일을 할 때 기억을 떠올리며 리눅스를 설치하고 이것저것 구성해 보고 싶어졌다.

 

리눅스를 설치하여 이것저것 구성을 하는 것도 좋지만, 우선은 가상머신 템플릿을 만들고 시작하고 싶어졌다. 템플릿을 만드려는 이유는 가상머신에서 제공되는 기능인데 템플릿을 복제하여 새로운 가상머신을 생성할 수 있다. 복제해서 새로운 가상머신을 만든다면 빠르게 가상머신을 만들 수 있다. 그러므로 다른 테스트를 좀 더 빠르게 할 수 있기 때문이다.


1. 가상머신 호스트 스펙

부끄럽지만, 가상머신 호스트로 사용될 PC 스펙이 매우 낮다. 오래되어 기억이 가물가물 하지만 2017년인가? 2018년인가? 이쯤에 조립한 것 같다. 이후에 다시 언급하겠지만 가상머신 템플릿에 설치될 리눅스 배포본은 Ubuntu이다. 가상머신 호스트의 스펙이 낮으므로 조금 번거로운 방식으로 가상머신 템플릿을 만들 예정이다.

  1. 가상머신 템플릿 스펙 - 표준 스펙으로 생성 (Ubuntu를 설치할 수 있는 스펙)
  2. Ubuntu를 설치
  3. 패키지(open-vm-tools) 설치
  4. 가상머신 템플릿 스펙 - 최소 스펙으로 조정 (Ubuntu를 실행할 수 있는 스펙)

이렇게 만들어진 가상머신을 템플릿 용도로 사용할 예정이다. 가상머신을 복제할 때의 방식은 가상머신 호스트 스펙이 낮으니 Full 복제보다 Link 복제가 좋을 것 같다. 이렇게 최소 스펙으로 가상머신을 생성하여 유지한다면 2개에서 최대 4개까지 생성해서 유지할 수 있을 것 같다.

 

이 PC의 스펙은 아래와 같다.

항목 내용
CPU Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz
메모리 16.0GB
디스크 SSD: Crucial_CT525MX300SSD1 (525GB)
HDD: ST1000DM003-1ER162  (1TB)
네트워크 Intel(R) Ethernet Connection (2) I219-V (1GB)

 

이번장에서 가상머신 호스트 스펙에 대해 살펴보았다. 낮은 스펙 탓으로 번거로운 방법이 필요하다고 언급하고 템플릿 용도의 가상머신 스펙에 대해서는 다음장에서 설명하겠다.

진짜 스펙이 낮은 PC다. 돈이 있으면 새 PC를 장만하고 싶다. ㅠㅠ

2. 가상머신 (VMware Pro)

위에서도 언급했듯 VMware를 사용하여 환경을 구성할 예정이다. 대안으로 사용할 수 있는 소프트웨어가 윈도우, 리눅스, OSX, 솔라리스에서 실행할 수 있는 Oracle VirtualBox를 사용해도 된다. OSX를 사용중이라면 유료지만 Parallels를 사용해도 된다. 이미 Parallels를 구매하셨다면 다른 가상머신을 설치할 필요가 없고 사용해도 무방하다. 

https://www.virtualbox.org/

 

Oracle VirtualBox

Powerful open source virtualization For personal and enterprise use VirtualBox is a general-purpose full virtualization software for x86_64 hardware (with version 7.1 additionally for macOS/Arm), targeted at laptop, desktop, server and embedded use.

www.virtualbox.org

다만, 여기서 언급하는 VMware와 사용법에 차이가 있기 때문에 여기서 구성한 것과 같이 구성하기 위해서는 별도의 노력이 필요할 수도 있다.

2.1. 가상머신 템플릿 스펙 - 표준 스펙

항목 내용
VCPU 2 VCPU (1P 2C)
메모리 4GB
디스크 16GB
네트워크 Bridge

2.2. 가상머신 템플릿 스펙 - 최소 스펙

항목 내용
VCPU 1 VCPU (1P 1C)
메모리 2GB
디스크 16GB
네트워크 Bridge

2. 호스트와 가상머신

가상머신을 이야기 하면 호스트라는 단어를 자주 접할 것이다. 간단하게 설명하면, 호스트는 가상머신을 실행하는 주인을 의미한다. 컴퓨터 전원을 켜면 보통 윈도우즈가 실행될 것인데 여기서 실행된 윈도우즈가 주인이 되어 가상머신을 생성하고 실행시켜준다.

 

참고로 윈도우즈라고 표현한 것은 하드웨어 리소스도 포함한다. 결국 윈도우즈가 하드웨어 리소스를 쪼개서 가상머신에 할당하기 때문에 하드웨어라고 표현하는 것 보다 윈도우즈라고 표현하는 것이 더 직관적일 것 같았다.

 

가상머신은 호스트 안에서 만들어진 가상의 하드웨어이다. 가상머신에서 실행되는 운영체제는 호스트는 알 수 없다. 가상머신 입장에서는 지금 실행되는 곳이 진짜 하드웨어라고 믿게 된다.


 3. 리눅스 배포본

리눅스 배포본에서 리눅스라는 단어는 본디 리눅스 커널 즉 리눅스의 핵심 기능을 담당하고 있는 소프트웨어만을 의미한다. 리눅스 커널은 컴퓨터 전원이 들어오고 부트로더를 거쳐 스스로 동작할 수 있으나 리눅스 커널이 동작한다고 해서 컴퓨터를 사용할 수 있는 것은 아니다. 그래서 이외에 필요한 요소를 포함하여 패키징한 후 배포하는 것을 리눅스 배포본이라고 한다.

 

옛날에는 리눅스는 커널만 의미한다. 때문에 리눅스 배포본의 정식 명칭은 "GNU/리눅스"라고 해야 한다는 이야기도 있었으나 어느 순간부터는 들리지 않는다. 그냥 편의상 리눅스라고 하면 커널과 배포본을 포함하는 의미인 것 같다.

 

아무튼 템플릿 만들기 전에 리눅스 배포본을 결정해야 한다. 옛날에 시스템 엔지니어로 일할 때 RHEL이나 RHEL 클론 버전인 CentOS를 많이 구성했다. 

  • 2014년 - CentOS가 RedHat에 인수
  • 2018년 - RedHat이 IBM에 인수합병

2020년도에 라이센스 정책이 변경이 되면서 더 이상 CentOS를 사용할 수 없게 되었다. 당시 CentOS 7 버전이 가장 많이 사용되었는데 이후 CentOS 8 버전이 있었으나 이 버전은 관심이 가지 않았고 이 다음에 CentOS 제작자가 Rocky라는 프로젝트를 시작한 것으로 알고 있지만 흥미가 없어졌다. 그래서 Ubuntu를 선택했다. Ubuntu를 선택한 이유는 딱히 없다. 예전부터 알고 있었고 최근에 새로 배포되는 배포본들을 찾아보기 귀찮아졌기 때문이다.

RHEL은 RedHat Enterprise Linux의 앞의 첫자만 따서 붙인 표현이다.

 

정확하게 알고 있는 내용은 아니지만, RHEL에 대해 추가로 언급하고 싶은 내용이 있다. RHEL은 안정적인 서비스가 중요한 기업 환경을 위한 리눅스 배포본이다. 유료이며 지원 서비스까지 포함하여 돈을 지불해야 한다. 물론 리눅스 배포본에 구성된 패키지들은 RedHat에서 제공되는 일부 패키지를 제외하고 대부분 오픈소스다. 시스템 엔지니어로 일을 하고 있을 당시에는 기업에서 중요한 서비스는 RHEL를 사용했던 것 같다. 이유는 기업에서 서비스를 운영하다가 문제가 생기기 마련인데, 서비스에 문제가 생기면 손해가 발생한다. 최악의 경우는 서비스를 중단하여 시간이 지날수록 손해가 지속되는 상황이다. 그렇기에 빠른 시간내에 문제를 해결하는 것이 중요하다. 문제를 해결하고 서비스를 정상화 시켜야 손해를 줄일 수 있다.

 

국내는 RedHat과 파트너쉽 프로그램으로 계약된 즉, RedHat 파트너 회사와 계약한 후 RedHat 파트너 회사에 소속된 시스템 엔지니어들이 외근, 파견 등의 형태로 지원하는 경우가 많은 것 같다. 이 외주 회사에 소속된 시스템 엔지니어가 대부분의 문제는 해결할 것이나 이 범위를 넘어가는 경우가 종종 생긴다. 예를들어 서버에 새로 교체한 하드웨어가 지원하지 않는다거나 특정 상황에서 비정상적으로 동작하는 경우가 있다. 시스템 엔지니어 판단으로 패치나 이에 준하는 지원이 필요할 경우 RedHat에 요청하는 형태로 지원한다.

참고로 구체적으로 지원하는 범위에 대해서는 자세히 알고 있는 내용은 없다.

4. Ubuntu 받기

아래의 URL로 접속하면 Ubuntu Server LTS를 다운로드 받을 수 있다. LTS는 Long-Term Service로 LTS가 안붙은 것 보다 오랫동안 패치를 제공한다고 보면된다. 그리고 Ubuntu의 경우 1년에 두번 버전 업이 있는 것으로 알고 있다. 그래서 Ubuntu 버전 표기는 출시년도.출시월로 표현된다. 2024년 04월에 배포되었으면 24.04로 표기된다. 만약 2024년 10월에 배포된다면 24.10으로 표기될 것이다. 이 글을 작성하는 시점인 2025년 05월 10일 (토) 기준으로 24.04.2 버전이 최신이다. 2024년 04월 2번째 버전인데 이와 같이 출시년도.출시월이 기본이지만 세부 버전이 있을 수 있다. 참고 바란다.

 

Ubuntu Server를 선택한 이유는 Ubuntu Desktop에 비해 상대적으로 적은 용량을 차지하기 때문이다. 흔히 Ubuntu Server를 "더 가볍다"고 표현한다. Ubuntu Desktop은 기본 사용자 인터페이스가 GUI(Graphical User Interface)인 반면 Ubuntu Server는 CUI(Character User Interface)를 기본으로 사용한다. 기본 인터페이스의 차이로 인해 디스크 용량 차이가 있지만 그 외의 핵심적인 구성은 대부분 동일하다. 추가로 리눅스 배포본을 Ubuntu로 선택했지만, Ubuntu에 의존적인 부분은 어쩔 수 없더라도 가능한 한 리눅스에 중점을 두고 이야기를 하고 싶었기 때문이기도 하다.

 

https://ubuntu.com/download/server

 

Get Ubuntu Server | Download | Ubuntu

Get Ubuntu Server one of three ways; by using Multipass on your desktop, using MAAS to provision machines in your data centre or installing it directly on a server.

ubuntu.com

<그림1> Ubuntu 다운로드 페이지

 

위의 <그림1>에서 "Download 24.04.2 LTS"을 선택하면 페이지가 이동한다. 이동한 페이지에서 잠시 대기하면 다운로드가 진행된다. 다운로드 목록에서 "ubuntu-24.04.2-live-server-amd64.iso" 파일이 다운로드가 진행되고 있는 것을 확인할 수 있다. 파일 용량은 3GB 정도다. 다운로드 완료되는 시간은 인터넷 속도에 따라 차이가 있을 것 같다.


5. 가상머신 생성

템플릿으로 사용할 가상머신을 생성한다. 한번만 생성하면 되고 절차 하나하나 언급하는 것은 비효율적이라 생각한다. 그래서 대부분은 기본값을 사용할 예정이다. 기본값을 사용하는 부분은 별도 생략하고 다른 부분에 대해서만 언급하겠다.

5.1. 가상머신 생성 시작!

파일 (F) - New Virtual Machine (CTRL+N)

 

위 순서대로 마우스를 클릭하여 따라가거나 키보드로 CTRL+N 키를 누르면 "New Virual Machine Wizard" 창이 보인다. 여기서 "Typical (recommded)"를 선택하자!

<그림2> New Virtual Machine Wizard 창! Typical (recommended)를 선택

5.2. 가상머신 생성 시작!

"Guest Operating System Installation" 창에서 "Installer disc image file (iso)"를 선택하고 "Browse..." 버튼을 클릭하여 "(3) Ubuntu 받기"에서 다운로드 받은 ISO 파일을 선택하자.

<그림3> Installer disc image file (iso) 선택한 화면

 

VMware에서는 잘 알려진 운영체제의 경우 위와 같이 ISO 파일을 선택하면 설치할 운영체제에 맞는 설정을 자동으로 해준다. Wizard에서 수동으로 선택해야 하는 항목이 적어진다. 혹시 ISO 파일을 다운로드 받는 중이면 이 창에서 조금만 기다렸다가 진행하는 것도 좋다.

5.3. 가상머신 이름

가상머신의 이름을 "Ubuntu 0"라고 명명했다. 0을 사용한 이유는 프로그래밍에서 숫자 0의 의미도 있지만 그 자신을 의미하기도 한다. 그래서 원본의 의미를 가진 Origin 단어의 O를 사용하는 것 보다 0을 사용하는 것이 더 좋을 것 같았다. 그리고 다른 이유가 숫자 0을 사용하면 0을 제외하고 1, 2, 3, 4~N까지 번호를 붙이면 좋을 것 같기도 했었다.

<그림4> 가상머신 이름 "Ubuntu 0"

 

이름에 숫자를 붙인 이유는 이 것을 원본으로 복제하며 사용하기 때문이다. 추가로 하나를 복제하면 이름에 숫자 1을 붙여야 하고 추가로 복제를 하나 더 하면 2를 붙이면 된다. 다만, 가상머신에 설치된 Ubuntu 호스트 이름에도 "ubuntu0"과 같이 번호를 부여할 생각인데 이 호스트 이름은 자동으로 변경되지 않는다. 따라서 복제한 후 가상머신을 켜서 수동으로 변경하는 작업이 필요하다.

5.4. 가상디스크 크기

디스크 크기의 기본값은 20.0GB이다. 개인적인 선호도지만 이상하게 2의 배수의 숫자가 끌린다. 그래서 16 또는 32 중 16을 선택하였다.

<그림5> 가상 디스크 크기 "16GB", "Store virtual disk as a single file"

 

위의 <그림3>에서 가상 디스크 크기 이외에 선택하는 옵션이 있다.

  • "Store virtual disk as a single file" - 가상 디스크를 단일 파일로 저장
  • "Split virtual disk into multiple files" - 가상 디스크 파일을 여러개로 분할하여 저장

여기서 디스크 용량은 디스크의 용량에 여유가 있으면 더 많은 용량을 입력해도 무방하다. 간단히 테스트 용도로 생각해서 그렇게 많은 용량을 할당하진 않았다. 해보진 않았지만 디스크의 여유용량을 넘어가는 용량을 입력해도 될 수 있다. 위에서 입력한 수는 가상머신 안에서 인식하는 디스크 용량을 의미한다. 가상머신을 생성하고 실제로 파일을 보면 수~수십킬로 바이트 정도의 디스크 파일이 생성되어 있을 것이다.

5.5. 생성 그리고 마무리

여기서 "Finish" 버튼을 마우스 왼쪽 버튼을 누른다면 마무리가 된다. 이로서 템플릿 용도로 사용할 가상머신은 생성되었다. 아! 메모리는 4GB로 설정되었다. 기억이 맞다면 설치할 때는 4GB 메모리가 요구된다. 설치가 끝나고 재부팅하기 전 메모리를 2GB로 조정할 것이다.

<그림6> 마무리!

 

아! 실수가 있었다. "Finish"를 누른 후 가상머신의 전원이 켜져서 다시 껏다. "Finish" 버튼을 누르기전에 "Power on this virtual machine after creation"에 체크를 없애자!

<그림7> 가상머신 생성이 완료된 화면!


6. 마무리

템플릿으로 사용할 가상머신을 만들었다. 이제 Ubuntu를 설치하면 된다. 그러나 Ubuntu를 설치하는 분량이 생각보다 많을 것 같다. 지레짐작이다. 다음 글로 넘기겠다.

728x90
반응형