IT/기초 지식

Vagrant란? 그리고 간단한 사용법

개발자 두더지 2022. 10. 4. 22:06
728x90

일본의 한 블로그 글을 번역한 포스트입니다. 오역 및 의역, 직역이 있을 수 있으며 틀린 내용은 지적해주시면 감사하겠습니다.

 

Vagrant 이란?


 Vagrant 이란 Virtualbox등 가상화 소프트웨어를 "CUI(캐릭터 유저 인터페이스)"로 조작하기 위한 소프트웨어이다. 즉, 가상환경 소프트웨어가 설치되어 있지 않다면, Vagrant는 사용할 수 없다.

 Vagrant와 VirtualBox의 차이에 대해서 간략하게 살펴보자. Vgrant와 VirtualBox의 가장 큰 차이점은 가상환경의 허들 높이 차이이다.

 VirtualBox와 비교해 Vagrant는 아래와 같은 특징이 있다.

  • 커맨드 하나로 가상 구축이 완료된다.
  • 가상 머신의 설정이 간단하다.
  • 설정 정보의 공유가 가능하다.
  • 환경 구축을 자동화할 수 있다.

 VirtualBox 단위로 가상 환경을 만드는 경우, OS의 다운로드, HDD 파티션의 설정, SSH의 설치 등 많은 설정과정이 필요하다.  그리고 지금까지의 설정이 자동화되지 않으므로, 다른 사람에게 설정 방법을 공유할 때는 순서를 기록으로 남겨두고, 그것을 참고로 설정을 하게 된다. 

 만든 가상 머신의 이미지 파일을 공유하는 방법도 있지만, 사이즈도 커서, 쓰기나 읽기, 전송에 시간이 걸리는 문제도 존재한다. 즉, VirtualBox에서의 환경 구축은 꽤 힘든작업이다.

 

 

Vagrantfile이란?


 Vagrant이라고 한다면 "Vagrantfile"이라는 존재가 있다. Vagrantfile이란, 가상 머신의 구축 설정 등 기재하기 위한 파일이다. 이 Vagrantfile의 특징은 다음과 같다.

  • 가상 머신의 기본 설정을 기재할 수 있다.
  • 파일이므로 공유가 간단하다.
  • 환경 구축 순서 파일이라고 불리기도 한다.
  • Ruby 언어로 기재한다.

 Vagrantfile에는 가상 머신을 구축하기 위한 기본 설정 등을 기재한다. 예를 들어 "OS는 CentOS 버전 7로 하고 싶다"라던가 "접속 IP는 x.x.x.x로 한다" 등과 같은 설정말이다.

Vagrant의 커맨드를 실행하면 자동적으로 Vagrantfile가 읽어들여져, 기재된 내용에 따라 가상 환경이 구축되는 구조이다. 또한, 이 "Vagrantfile"은 단순히 파일이므로, 누군가에게 공유하는 것도 간단하다.

 그 외에도 "가상 머신을 구축한 후에 필요한 패키지를 설치하고 싶다!"라고 할 경우, 다른 파일에 상세하게 설치 파일을 기재하고 Vagrantfile에서 그 파일을 호출하여 설치하도록 하는 방법도 가능하다.

 한편으로, Vagrantfile는 "Ruby"이라는 프로그래밍 언어로 작성한다고 했지만, 이 언어를 이해하지 못해도 상관없다.

 

 

Vagrant의 설치


 Vagrant의 설치 방법 자체는 굉장히 간단하다.

1) Vagrant 공식 사이트로 이동한다.

2) 설치할 환경에 맞는 Vagrant를 선택후 다운로드 한다.

3) 특별한 설정이 없다면 기본 설정으로 설치한다.

4) PC를 재시작한다.

 

 

Vagrant의 사용법


 여기서 Vagrant의 사용법에 대해 간단히 소개하도록 하겠다. 이 포스트에서는 Windows 환경에 "CentOS"를 구축하는 방법을 메인으로 설명하도록 하겠다.

 

Vagrant를 실행할 폴더를 준비

Vagrant를 실행하는 환경을 만들기 위해 먼저 롣러를 준비해 둘 필요가 있다. 이름 명명법에 제한은 없지만 이번에는 다음과 같이 폴더를 생성했다.

C:\Users\user_name\training\vagrant

user_name의 부분은 본인의 계정명으로 바꿔서 생각해주길 바란다. 여기서 기억해둬야할 것은 Vagrant를 실행할 폴더마다 1개의 가상 머신이 되는 것이다. 즉, 가상 머신을 많이 만들고 싶은 경우는 폴더를 바꿔서 Vagrant를 실행하면 된다.

 

커맨드 프롬프트 열기

 Vagrant는 "CUI"로만 조작이 가능하다. Windows에서는 CUI라고 한다면 "커맨드 프롬프트"라고 할 수 있다. 먼저 커맨드 프롬프트를 열자!

  커맨드 프롬프트는 "Windows" 버튼을 클릭한 후에 검색창에 "cmd"라고 검색하면 찾을 수 있다.

 

Vagrantfile 작성하기

 커맨드 프롬프트를 사용해 아까 만든 폴더인 C:\Users\user_name\training\vagrant로 이동한다. 커맨드는 cd를 사용하면 된다.

$ cd C:\Users\user_name\training\vagrant

 이동했다면 vagrant init 커맨드로 Vagrantfile를 만들 수 있다. 이 커맨드는 맨 처음에 한 번만 실행하면 된다.

$ vagrant init

 

 

Vagrantfile의 설정

 다음은 Vagrantfile를 에디터로 열자. 파일을 열어  필요한 설정을 추가하면 된다. 여기서는 앞서 말했듯, CentOS(버전은 7)를 설치하여 실행할 예쩡이므로 다음과 같이 기재했다.

VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "centos/7"
  config.vm.network :private_network, ip: "192.168.33.10"
  config.vm.provider "virtualbox" do |vb|
    vb.name = "training"
    vb.gui = false
    vb.memory = "2048"
  end
  config.ssh.private_key_path = "c:/Users/user_name/.vagrant.d/insecure_private_key"
  config.ssh.insert_key = false
  if Object.const_defined? 'VagrantVbguest'
    config.vbguest.auto_update = false
    config.vbguest.no_remote = true
  end
end

 

가상 머신을 실행

Vagrant 실행할 준비가 됐다. 커맨드 프롬프터에서 아래의 커맨드로 실행하여 가상머신을 만들어보자.

$ vagrant up

 vagrant up 은 Vagratfile에 적힌 내용에 따라 가상 머신을 구축하며 실행된다. 이 때 뒤에서는 VirtualBox가 움이직이기 시작해 가상 머신을 만들기 시작한다. 

 한편으로 vagrant up은 실행 타이밍에 따라 조금씩 바뀌므로 주의해야할 필요가 있다.

  • 맨 처음 실행했을 때는 가상 머신을 구축하여 실행
  • 가상 머신을 실행(2회 이후)

 제일 처음에는 가상 머신의 구축와 실행이지만, 두 번째부터는 가상 머신의 실행만 된다. 그러나 두 번째부터도 vagrant up할 때마다 Vagrantfile가 읽어들여진다는 점을 기억해두자.

 

가상 머신으로 로그인

 가상 머신이 구축되면, 아래의 커맨드로 가상 머신으로 로그인하자.

$ vagrant ssh

 이것으로 CentOS가 설치된 가상머신에 vagrant이라는 유저로 로그인이 된다.

 

가상 머신에서 로그아웃하기

 가상 머신에서 나가려면 Ctrl+d를 누르거나, exit 커맨드를 사용하면 된다.

$ exit

 

가상 머신 중지하기

가상 머신을 중지하고 싶은 경우 아래의 커맨드를 실행한다.

$ vagrant halt

 

가상 머신의 삭제

 만든 가상 머신을 삭제할 경우는 아래의 커맨드를 실행하면 된다.

$ vagrant destroy

 불필요한 가상 머신을 삭제하는 것 외에도 가상 머신을 다시 만들때에도 자주 사용되는 커맨드이다.


참고자료

https://kitsune.blog/linux-environment#Vagrant%E3%81%A8%E3%81%AF

728x90