CS/Linux

[Linux] Vagrant & Virtual Box를 이용한 가상 머신 만들기

아이스얼그레이 2022. 7. 21. 22:28

1. Vagrant & Virtual Box 설치

먼저 Varagnt와 Virtual box를 설치합시다.

Download Vagrant

Vagrant by HashiCorp

Vagrant enables users to create and configure lightweight, reproducible, and portable development environments.

www.vagrantup.com

위 링크를 타고 들어가면 vagrant를 설치할 수 있습니다. 이때 옵션으로 686, Amd64가 있는데 각각 32bit, 64bit 운영체제 기반 프로그램이라는 말이므로 본인 PC에 맞게 설치하시면 됩니다.

설치 과정에서 나타나는 옵션들은 딱히 변경할 필요 없으며 가장 최신 버전으로 설치해주세요.

Download VirtualBox

Downloads – Oracle VM VirtualBox

Download VirtualBox Here you will find links to VirtualBox binaries and its source code. VirtualBox binaries By downloading, you agree to the terms and conditions of the respective license. If you're looking for the latest VirtualBox 6.0 packages, see Virt

www.virtualbox.org

위 링크를 타고 들어가면 Virtual Box를 설치할 수 있습니다. 가장 최근 버전(게시글 작성일 기준 6.1.36)으로 설치해주시고, 본인 운영체제에 맞는 프로그램을 설치하시면 됩니다.

VB 또한 설치 과정에서 나타나는 옵션들은 딱히 변경할 필요 없습니다.

2. Vagrant를 이용해 가상머신 만들기

둘 다 설치하셨다면, command 또는 Powershell을 띄워주세요. 보통 cmd를 실행하면 user 폴더가 default로 나타나는데, 이 경로에서 작업을 해주시는 게 편합니다.

vagrant init

여기서 위 명령어를 입력해주세요. 그럼 VM의 정보를 작성할 수 있는 Vagrantfile이라는 파일이 생성됩니다. 이때 확장자가 없는 게 맞습니다. 확장자가 없더라도 편집 프로그램으로 편집할 수 있습니다.

Vagrantfile은 가상 머신이 몇 개의 core를 사용할지, RAM은 얼마만큼할지, 디스크 용량을 어느 정도로 할지 설정해주는 파일입니다.

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|

  # 첫번째 서버 : ubuntu_1804
  config.vm.define "ubuntu" do |cfg|
    cfg.vm.box = "ubuntu/bionic64"
    #cfg.vm.provision "shell", path: "provision.sh"
    #cfg.vm.provision :shell, inline: "DEBIAN_FRONTEND=noninteractive apt-get install -yq apache2"
    #cfg.vm.network "forwarded_port", guest: 80, host: 8080, id: "nginx"
    #cfg.vm.network "private_network", ip: "192.168.20.105"
    #cfg.vm.network "forwarded_port", guest: 15672, host: 15672
    #cfg.vm.host_name = "tjp6"
  end

  config.disksize.size = "180GB"

  config.vm.synced_folder "C:\\Users\\wldhk\\Downloads", "/srv/Downloads"
  config.vm.synced_folder ".", "/vagrant", disabled: true
  # 글로벌 설정
  # 따로 cpu 갯수와 memory를 적지 않았다면, 기본으로 설정될 값
  config.vm.provider "virtualbox" do |vb|
       vb.cpus = 2
       vb.memory = 8192
  end
end

저는 위와 같이 작성했습니다. 이때 disksize.size = 180GB, vb.cpus = 2, vb.memory = 8192(8GB)이므로 디스크 용량은 180GB, dual core CPU, 8GB RAM을 가지는 VM이 만들어지게 됩니다.

180GB보다 SSD의 용량이 더 적더라도 180GB를 바로 잡아먹는 게 아닌, VM에 할당만 해주는 방식이라서 그게 걱정하실 필요는 없습니다.

2.1. VM 생성 경로 설정

제 노트북의 C:에는 용량이 많이 없어서 이번에 추가한 D:에 VM을 생성하려고 합니다. 하지만 Vagrant와 VM은 C:에 설치되어 있으므로 VB manager에서 VM 설치 경로를 수정해줘야 합니다.

VB 관리자 프로그램을 실행하고 다음 그림과 같은 설정을 해줍시다.

VM 관리자에서 도구 > 환경 설정 > 일반에 들어가시면 기본 머신 폴더(D:)라는 설정 항목이 있습니다. 저는 이 항목을 D:로 바꿔서 D:의 root 경로에 VM이 생성되게 설정했습니다.

2.2. 공유폴더 설정

현재 사용 중인 PC와 VM이 함께 사용할 공유폴더를 설정해줍시다. 공유폴더 경로는 Vagrantfile을 통해서 설정할 수 있습니다.

위에 작성했던 Vagrantfile을 보시면 config.vm.synced_folder이라는 항목이 있습니다. 여기서 공유폴더를 설정할 수 있는데 저는 Downloads라는 폴더를 공유폴더로 설정했습니다. 이때 폴더명만 쓰는 게 아닌 폴더 경로 전체를 다 써줘야 합니다.

2.3. VM 생성

다시 terminal로 들어가서 vagrant up을 입력해주면 VM이 생성됩니다.(Vagrantfile이 있는 경로에서 입력해야 합니다.)

이 과정에서 다음과 같은 에러를 만났습니다.

disksize라는 항목을 인식을 못한 것 같네요. 이 에러를 해결하려면 다음 명령어를 입력해주면 됩니다.

vagrant plugin install vagrant-disksize
vagrant plugin install vagrant-vbguest


이제 다시 vagrant up을 입력해주면 약 5분 정도 걸려서 VM이 생성될 겁니다.

VM 생성 경로인 D:에 username_ubuntu_.... 아래 사진과 같은 폴더가 생성됐다면 VM 생성에 성공한 겁니다!!

그리고 VM이 켜져 있는 상태에서 cmd에서 vagrant ssh를 입력하면 VM에 접근할 수 있고 Linux 명령어를 사용해서 제어할 수 있습니다.

추후에 VScode와 Vagrant를 연동해서 사용하는 방법에 대한 게시글을 작성해보겠습니다. 연동해서 사용하면 Linux CLI(Command-Line-Interface)의 장점과 Window GUI(Graphic-User-Interface)의 장점을 동시에 활용할 수 있습니다😮😮

'CS > Linux' 카테고리의 다른 글

[Linux] VirtualBox에서 VDI(Virtual Disk Image) 파일 크기 줄이기  (0) 2022.07.22