내가 운영하고 있는 HPE ProLiant MicroServer Gen8 의 하드웨어 사양은 그리 좋은 것이 아니지. 그런데 올리고 싶은 서버는 참 많아. 그래서 VM 몇 개를 버텨줄지 자못 궁금해.
만약 VM 을 윈도우 OS 로만 구성해야 한다면, 2개~3개 올리면 많이 올리는게 아닐까 싶을 정도지.
Linux OS 가 윈도우 OS 에 비해서 낮은 하드웨어 사양에서도 충분히 제 성능을 발휘할 수 있을테니 모든 서버 VM 은 Linux OS 를 사용해 볼 생각이야.
Linux OS 중에서 예전에는 CentOS 를 주로 다뤄봤지. 그 당시에는 CentOS 가 대세였던 것 같아. 요즘은 우분투가 대세가 아닌듯 싶어서 우분투의 버전을 찾아봤어.
Desktop 과 Server 중에 당연히 Server 를 선택했고, LTS 버전중에는 22.04.3 이 가장 최신 버전이네.

설치용 iso 이미지 파일의 이름은 ubuntu-22.04.3-live-server-amd64.iso 이고 Size 는 2GB 정도네.
ESXi 에서 가상 시스템을 하나 만들어서 설치 방법에 대한 안내를 해볼까 해.
이 가상 시스템의 용도는 Web Server 가 될 예정이라서 가상 시스템 이름은 web.ubuntu 로 지었어.
다른 용도의 서버 VM 을 구축할 때마다 OS 를 설치하는 과정은 모두 동일하고, 서버용도에 따라 CPU, 메모리, 하드디스크 등의 하드웨어 사양만 적절하게 설정해주는 방법으로 진행할테니, 이번 포스트에서 알아보는 내용이 가장 많이 활용될 것 같네.
가상 시스템 생성
ESXi 관리 화면에서 가상 시스템의 “VM 생성/등록” 링크를 사용하면 생성할 가상 시스템을 구성할 수 있지.

“VM 생성/등록” 링크는 이름에서도 알 수 있지만, 새로운 가상 시스템(VM)을 생성할 수도 있지만, 이미 생성되어 있는 가상 시스템을 ESXi 에 등록하는 기능도 수행할 수 있어.

web.ubuntu 라는 가상 시스템 이름은 이 VM 이 어떤 용도로 사용될지를 가장 잘 설명해주고 있는 것 같아. 이름만 봐도 알 수 있잖아? 이건 웹서버라는걸~
“게스트 운영 체제 제품군” 에서는 Linux 를 선택해주고, “게스트 운영 체제 버전” 에서는 우분투 64 비트를 선택해 주었지. 나는 이미 우분투 22.04.3 LTS 이미지(ubuntu-22.04.3-live-server-amd64.iso)를 받아놓은 상태이고, 이 이미지파일을 사용할 예정이기 때문이야. 이 이미지 파일은 파일 이름에도 있지만, 64비트야.

가상 시스템을 저장할 스토리지를 선택하는 화면인데, 나는 datastore2_4TB 이름의 스토리지를 선택하고 “다음” 단계로 넘어갔어.

CPU는 1개, 메모리는 1024MB, 하드디스크는 16GB 로 잡았지. CPU 나 메모리는 운영중에 다시 설정할 수도 있어. 그러나 하드디스크는 운영중에 그 용량을 다시 설정하기가 쉽지 않기 때문에 가상 시스템을 생성하는 단계에서 그 서버 용도에 맞게 적절한 용량을 잡아줄 필요가 있지.
CD/DVD 드라이브에는 우분투 설치 이미지 파일을 데이터 스토어에 업로드하고 업로드된 이미지 파일을 지정해주면 돼.

설정 내용을 요약해서 보여주고 가상 시스템을 생성할 준비가 완료되었다고 알려주네. “완료” 버튼을 누르면 지정한 스토리지에 지정한 이름의 가상 시스템 디렉토리가 생성되고, 가상 시스템 이미지가 생성되지.

가상 시스템이 생성되고 ESXi 에 등록된 상태의 모습이야.
이제 가상 시스템의 전원을 올려서 우분투 설치 과정을 살펴볼께.
우분투 22.04 LTS 설치

우분투가 부팅되면 설치를 진행하기 위한 메뉴 화면이 표시되지. 기다려주는 시간은 30초이고, 30초가 지나면 자동으로 선택된 항목이 진행되지.

설치과정의 시작은 언어를 선택하는거야. 엔터를 누르면 초록색으로 선택된 언어가 설정되지.

다음은 키보드 레이아웃을 설정하는 화면이야. 특별히 수정하지 않고 기본값 확인하고 엔터를 누르면 돼.

vi 등의 패키지조차 설치되지 않은 상태의 mimized 로 설치하는 것이 MicroServer 에 부담을 주지 않을 것 같은 생각이 들었어. <Tab> 키를 이용해서 항목간 이동을 하고, 체크 표시는 <Space>키를 이용하면 돼. 설정을 마치고나면 [Done] 이 선택된 상태에서 <Enter>키를 눌러주면 돼.

IP 주소를 할당하는 화면이야. <Tab>키를 이용해서 항목간 이동해서 <Enter>를 누르면 해당 항목에 대한 수정 방법의 팝업메뉴가 추가로 표시되는 형식이야.


IP 주소는 직접 설정하기 위해서 Manual 을 선택해봤어.
IP 주소로 10.10.1.2를 입력하고 Subnet 은 10.10.1.0/24, Gateway 에는 10.10.1.1 을 입력했어.
Name servers 는 DNS 서버 주소인데 8.8.8.8,8.8.4.4 와 같이 콤마(,) 로 분리해서 2개의 주소를 입력했어.

입력한 IP 주소 할당이 완료되면 IP 주소가 표시되고 아래쪽에 [Done] 으로 변경되지.

Proxy address 는 설정할 필요가 없지.

우분투 archive mirror 사이트를 테스트하는 과정인데, 그냥 skip 해도 돼.

인스톨러가 업데이트 가능하다고 하는데, 업데이트하지 않고 그냥 설치할래.

하드디스크에 대한 파티셔닝인데, [Done] 으로 다음 단계에 넘어가면 조금 더 자세하게 설정할 수 있지.

이 화면이 기본값인데, 중간에 free space 용량이 보일거야. 4.246G. 이 용량을 남겨두면 아까울 것 같아서 아래 단계를 거쳐서 수정을 해봤어.








결과적으로 16GB 크기를 할당한 하드디스크 전체 용량을 / 와 /boot 로 할당해서 알뜰히 사용하게 설정했지.

디스크가 포맷되면 데이터를 잃게되고, 이전 상태로 되돌릴 수 없다는 경고를 날리고 있군. 선택 항목의 색상도 빨간색으로 표시되어 조금 더 경각심을 느끼게 하고 있네.
리눅스 파티셔닝에 대해서는 많은 경험이 없어서 더 좋은 구성을 할 수 있을지도 모르겠지만, 이 정도 해 두면 사용상에 큰 문제는 없을 것으로 생각이 들어.
나중에 기회가 되면 리눅스 마운트별 파티셔닝 구성에 대해서 공부좀 더 해볼 생각이야.

기본 사용자에 대한 계정 정보와 서버 이름(host name)을 입력했지. 호스트이름에는 . 같은 문자는 사용할 수 없더라구. 그래서 . 대신에 – 를 사용했지.

업그레이드하지 않겠다고 선택하고 다음으로 넘어갔어.

설치 과정에서 openssh server 를 설치할 수 있도록 배려해주고 있는 이유는 일단 설치가 완료된 후 즉시 ssh 를 이용해서 접속이 가능할 수 있도록 해주기 위함인거지. 설치 단계에서 openssh server 를 설치하지 않는다면, 설치가 완료된 후에 다시 openssh server 를 설치해야 하고, 그제서야 원격에서 ssh 로 접속이 가능하다는거야.

서버를 운영하는데 있어서 필수적인게 아니라면 아무것도 선택하지 말고 다음으로 넘어가는게 좋을 것 같아.

이제 더 이상 선택하는 것 없이 설치가 진행되고 있군. [View full log] 를 선택해서 설치 과정의 로그 내용을 확인해볼 수도 있어.

[Close] 를 선택하면 이전 화면으로 다시 돌아갈 수 있어.

설치 과정이 완료되면 Reboot Now 선택 항목이 보이게 돼. 이걸 선택해서 시스템을 재부팅하면 우분투가 실행되는거지.

위와 같은 메시지가 나오면 CD/CDROM 연결을 끊어준 상태에서 ENTER 를 눌러주면 돼.


우분투 부팅이 완료되고 나면 설치 과정에서 생성한 계정과 패스워드로 로그인할 수 있게 되지.
이렇게 우분투를 설치하는 기본적인 단계를 살펴봤는데, 각 서버 용도에 따라 추가적인 패키지를 설치해 나가는 과정이 필요해. 서버 용도별로 패키지를 설치하는 방법에 대해서는 별도의 포스트로 설명을 해볼 예정이야.
프로그램 설치
우분투 서버를 minimized 로 설치했기 때문에 vi 프로그램을 사용하려면 다음과 같이 에러가 나거든.

그래서 vi 프로그램을 설치하는 방법을 설명하는 것으로 이 글을 마칠까 해.
우분투에서 프로그램을 설치할 때에는 apt 또는 apt-get 이라는 명령어를 사용하지. apt 나 apt-get 은 사용방법이 상당히 유사한데, apt-get 보다 apt 가 더 최근에 릴리즈된 명령어라고 생각하면 돼. 즉, apt-get 보다 apt 를 사용하는게 더 최신화된 명령어를 사용하는 것이다.
어쨌든, apt (또는 apt-get) 을 사용해서 프로그램을 설치하기 전에 공식 리파지토리(프로그램 패키지를 배포하는 저장소)에서 사용 가능한 소프트웨어 패키지 목록을 업데이트해서 최신화시켜주는 것이 좋아. 이럴때 사용하는 명령어는
$ sudo apt update

apt 앞에 sudo 를 붙인 이유는 apt (또는 apt-get) 이 관리자 계정으로 실행 가능한 명령어이기 때문이야.
만약 관리자 계정(예를 들면 root) 으로 이미 로그인한 상태라면 sudo 를 붙이지 않고도 실행이 가능해져.
apt update 를 실행한 결과를 보면 40 packages can be upgraded. 라고 표시가 되었지? 40개의 패키지가 업그레이드 가능하다고 알려주는 거야. 그러면 이 패키지들을 업그레이드시키려면 어떻게 해야 할까?
$ sudo apt upgrade

나열된 패키지들이 업그레이드가 될 건데, 계속할까? 라고 물어보는거야. Y 를 입력하고 엔터를 치거나 Y 가 대문자로 표시되어 있기 때문에 그냥 엔터만 입력해도 계속 진행이 되지.


소프트웨어 패키지가 업그레이드된 영향으로 몇몇 서비스들이 재시작되어야 하는데, 어떤 서비스들을 재시작할지를 선택해줘 라는 질문이야. 각 번호를 스페이스로 분리(예:1 2 4 5)하여 입력하거나 1-9 처럼 범위를 입력할 수 있어.

정말로 업그레이드 가능한 모든 패키지들이 업그레이드 완료되었는지를 확인해 보려면 다시한번 sudo apt update 명령어를 날려보면 되는거야.

아직 2개의 패키지가 업그레이드가 안되었네. 다시 한번 apt upgrade 를 날려볼께.

업그레이드할 패키지는 더 이상 없고 2개의 패키지(libssl3 openssl)가 업그레이드되지 않았다고 알려주네.
이 상황은 예상하지 못했네. 이유를 찾게 되면 다시 알려줄께.
apt update, apt upgrade 를 아무리 실행해도 libssl3, openssl 은 업그레이드가 안되길래 아래 방법을 사용했어. 패키지를 다시 설치하는 방법이야.
$ sudo apt reinstall libssl3 openssl
어쨌든 apt update 와 apt upgrade 를 이용해서 설치된 소프트웨어 패키지를 최신화하는데 성공했어.
이제 vi 프로그램을 사용할 수 있게 설치를 해볼 차례야.
vi 프로그램은 vim 이라는 이름의 패키지를 설치해야 사용할 수 있어.
$ sudo apt install vim

vim 패키지를 설치하면서 같이 설치되는 패키지가 libgpm2 libpython3.10 등 여러가지가 있네.
Y 를 입력하고 엔터를 누르거나 그냥 엔터를 누르면 패키지가 설치되기 시작해.

이제 다시 vi 명령어를 사용해볼께.
$ vi

vi 프로그램 편집기를 빠져나갈 때는 : 를 입력하고 q 를 입력하면 되지.


이렇게 프로그램을 설치하려면 해당 프로그램에 대한 패키지명(예:vi 프로그램은 vim 패키지)을 알아야해.
앞으로 다른 포스트들에서 각 서버를 구성하기 위한 소프트웨어를 설치할 때 매우 많이 다루게 될거야.