VirtualBox와 Vagrant의 기본 사용법

프로그램의 개발환경을 구축할 때 이제는 VirtualBoxVMware같은 가상머신을 사용하는 것이 보편화 되었습니다. 가상머신 위에서 개발을 할 경우 심적인 부담없이 자유롭게 개발을 할 수가 있습니다. 예를들어 여러가지 오픈소스를 설치하여 사용 하더라도 다른 프로그램과 충돌이 날 것에 대해 걱정을 하지 않아도 되고 혹시라도 시스템이 죽거나 복구가 불가능할 경우에는 가상머신을 제거하고 다시 설치하여 사용하면 되므로 안심하고 개발을 할 수 가 있습니다.

또한 Vagrant를 활용하여 가상머신을 좀더 편하게 사용할 수 도 있습니다.

가상머신 (VirtualBox)

가상머신은 아무 OS도 설치되어 있지 않은 가상의 데스크탑 이라고 보면 됩니다. 그 가상머신에 windows를 설치하던지 리눅스를 설치하던지 MAC OSX를 설치하던지는 설치하는 사람의 마음입니다.

가상머신의 종류로는 크게 VirtualBoxVMware가 있으며 여기서는 VirtualBox의 설치에 대해서만 간략히 정리하도록 하겠습니다.

VirtualBox는 오라클에서 관리르 하고 있으며 프리웨어로 제공을 하고 있기 때문에 무료로 설치해서 사용할 수 있습니다.

설치

VirtualBox는 아래의 URL에 접속하여 다운로드를 받으면 됩니다. 설치하는 호스트 머신의 시스템에 따라 Windows hosts, OS X hosts, Linux distributions, Solaris hosts중 하나를 선택하여 다운로드 하면 됩니다.

버츄얼박스 다운로드

tistory-image

Windows에 설치하는 경우 설치파일을 실행하고 순서대로 진행하여 설치하면 쉽게 설치가 가능합니다.

간단하지만 이것으로 가상머신의 설치는 끝났고 대부분의 설정은 Vagrant에서 진행합니다.

Vagrant

Vagrant는 가상머신을 편리하게 사용할 수 있도록 도와주는 프로그램입니다. 이미 누군가가 Vagrant로 설정해 놓은 가상머신 Box를 간단한 명령어로 손쉽게 설치 할 수 있으며 가상 머신호스트 머신과의 환경설정도 쉽게 할 수 있습니다.

설치

Vagrant 다운로드 페이지에서 호스트 머신의 시스템에 따라 *Debian Linux, *Centos Linux*, *Windows*, *Mac OS X*중 하나를 선택하여 다운로드 하면 됩니다.

Vagrant 다운로드

tistory-image

Windows에 설치하는 경우 설치파일을 실행하고 순서대로 진행하여 설치하면 쉽게 설치가 가능합니다.

가상머신 추가

Vagrant를 설치했다면 Vagrant를 이용하여 Vagrant Box를 추가해야 합니다. Vagrant Box는 누군가가 미리 설정해 놓은 가상머신 Box 파일이며 명령어 한줄로 Vagrant Box를 쉽게 추가 할 수 있습니다.

tistory-image

누군가가 미리 설정해 놓은 Vagrant BoxVagrant Cloud 웹사이트에서 검색을 통해 찾을 수 있습니다.

Vagrant를 이용하여 가상머신을 추가하는 방법입니다.

윈도우에서는 명령 프롬프트(CMD), Mac OS X에서는 터미널에서 명령어를 입력하시면 됩니다.

먼저 vagrant init 명령어로 Vagrantfile를 생성해야 합니다.
가장 기본적인 vagrant의 설정파일이 생성됩니다. 이 설정파일을 변경하면서 나에게 맞는 설정을 하면서 사용하면 됩니다.

> vagrant init

Vagrantfile이 생성되었으면 해당 문서를 열어서 설정을 변경해야 합니다.

Vagrantfile 파일의 15라인 쯤에 있는 config.vm.box = "base"명령어를 아래와 같이 바꾸면 Vagrant를 실행할 때 Vagrant Cloud에서 centos65-x64 가상머신을 자동으로 다운받습니다.

  # config.vm.box = "base"
  config.vm.box = "puphpet/centos65-x64"

가상머신 실행 (Vagrant 실행)

이제 설정한 Vagrant를 실행하면 됩니다. Vagrant 실행이 처음이라면 가상머신을 다운로드받아 설치를 하고 기동을 하고 이미 설치가 되어 있다면 그냥 기동만 하게 됩니다.

> vagrant up --provider virtualbox

가상머신 접속 (로그인)

가상머신이 실행되었으면 가상머신에 접속을 해야 합니다. 접속은 vagrant ssh명령어로 접속을 합니다. Mac OS X는 터미널에서 윈도우에서는 CMD창 이나 Putty(푸티)Poderosa(포데로사)같은 별도의 SSH클라이언트 프로그램으로 접속하여 사용하면 됩니다.

터미널이나 CMD창에서의 명령어는 아래와 같습니다.

> vagrant ssh

SSH클라이언트를 사용할 경우 기본적으로 아래의 정보로 접속을 하면 됩니다.

  • Host : 127.0.0.1
  • Port : 2222
  • Username : vagrant
  • Password : vagrant
  • Private key : c:/vagrant/.vagrant/machines/default/virtualbox/private_key

웹서버를 사용하기 위한 설정

호스트머신에 띄워져있는 가상머신의 웹서버에 접속을 하기위해서는 Vagrantfile에 몇가지 설정을 추가해야 합니다.

먼저 호스트머신으로 접속한 port(8080)를 가상머신의 port(80)로 전달을 해야 합니다.
config.vm.network "forwarded_port", guest: 80, host: 8080

그리고 가상머신의 아이피주소를 설정을 해 주어야 합니다.
config.vm.network "private_network", ip: "192.168.33.10"

마지막으로 가상머신과 호스트머신과의 실시간 자동으로 동기화되는 폴더를 설정해야 합니다. 호스트머신에서 소스파일을 수정하게 되면 바로 가상머신의 소스파일도 변경이 되기때문에 개발작업은 호스트머신에서 실행은 가상머신에서 하는 것이 가능해 집니다.

  # 가상머신의 80포트를 호스트머신의 8080 포트에 할당함
  config.vm.network "forwarded_port", guest: 80, host: 8080
  #
  # 가상머신의 IP를 아래 설정한 IP주소에 할당함
  config.vm.network "private_network", ip: "192.168.33.10"
  #
  # 가상머신의 폴더와 호스트 머신의 폴더를 공유함(동기화)
  # 별도로 세팅을 하지 않은경우 호스트머신의 vagrant설정이 있는 폴더와 가상머신의 /vagrant 폴더가 동기화 됨
  # config.vm.synced_folder "호스트머신의 경로", "가상머신의 경로"
**폴더공유 에러 발생 시 : ** 호스트머신에 플러그인을 설치하여 관리하면 편리합니다.
`> vagrant plugin install vagrant-vbguest`

기본적인 Vagrant 명령어 모음

명령어 설명
vagrant up 가상머신 기동
vagrant status 가상머신 상태 확인
vagrant ssh 가상머신에 접속
vagrant halt 가상머신 정지
vagrant suspend 가상머신 휴면
vagrant resume 가상머신 휴면에서 복원
vagrant reload 가상머신 재시동
vagrant destroy 가상머신 제거

Similar Posts

  • 구글 크롬을 초기화 하는 방법

    구글 크롬을 오래 사용하다 보면 속도가 느려지거나 프리징이 되버리거나 하는 경우가 종종 있습니다. 이럴때 스마트폰을 공장초기화 하듯이 크롬도 초기화를 할 수 있는데요. 재설치가 아니고 크롬이 있는상태에서 초기화 하는 방법을 포스팅하려고 합니다. 모두 다 사라지는 것은 아니고 북마크는 남아 있으니 안심하시면 됩니다. 크롬 초기화 하기 브라우저의 우측 상단에 있는 설정메뉴 버튼을 클릭합니다. 컨텍스트메뉴 중 하단에 있는 […]

  • 레이아웃의 다단을 100% 로 맞추기

    예전에 Table로 레이아웃을 잡을 때는 어렵지 않게 구현되었던 표현인데 근래들어서 웹표준에 맞게 코딩을 하게 되면서 레이아웃을 DVI태그로 구현해야 하게 되므로써 다소 구현이 어려워진 것 중에 하나가 다단을 구성하는 것이 아닐까 합니다. 그 다단을 구현하는 방법이 여러가지가 있을 것 같은데.. 이번에 소개를 해드리는 것은 javascript로 구현하는 방법입니다. 레이아웃을 구성 시 2단 또는 3단 이상의 다단을 구성할때 […]

  • 유튜버 진출의 최대 고민이였던 더빙을 해결해 줄 네이버 클로바 더빙 출시

    한때 유튜버를 꿈꿨으나 그지같은 목소리 때문에 포기했어야 했던 꿈을 이제 다시한번 불태워 볼 기회가 생겼습니다. 네이버에서 출시한 클로바 더빙이 그 꿈을 실현해줄 무기입니다. 이번에 야심차게 출시를 하고 현재는 알리기 위한 이벤트를 진행중에 있는데요. 예전의 기계적인 톤의 TTS보다 정말 한단계 진일보한, 느낌있는 목소를 들려주고 있습니다. 또한 동영상과 매칭을 시켜주고 있어서 더욱 활용도가 있어 보입니다. 클로바 더빙 […]

  • 월마트 자율주행 쇼핑카트

    요즘에는 자율주행이라는 것이 대세인가봅니다. 쇼핑카트까지 자율주행을 한다고 하니.. 뭐.. 몇년 전부터 상상은 해봤던 것이기는 한데.. 실제로 월마트에서 특허까지 취득을 했다고 하니 곧 마트에서 혼자 굴러다니는 쇼핑카트를 볼 날도 멀지 않은것 같습니다. 월마트에서는 위치파악센서, 비디오카메라, 무선네트워크기술을 활용한 기기를 쇼핑카트의 밑에 부탁을 하면 카트가 자유롭게 욺직여서 호출한 사용자 앞으로 오기도 하고 사용자가 원하는 상품의 위치로 안내까지 하는 […]

  • 구글 스프레드시트로 캘린더 이벤트 등록하기

    연초가 되어서 내년 계획를 잡던중 회원들의 생년월일을 구글 캘린더에 등록해야 할 일이 생겼습니다. 약 50명의 회원인데.. 일일이 구글 캘린더에 등록을 하려니 “내가 지금 뭘 하고 있는건가??” 라는 자괴감이 들어서 어떻게 편하게 등록할 방법이 없나 찾던중 구글의 쉬트에 작성한 내용을 한번에 구글 캘린더에 등록할 수 있는 방법을 찾아 냈습니다. 저는 약 2일에 걸쳐 프로그램을 해서 현재 […]

  • 코로나19 시대 라이더의 선택은?? (feat. 즈위프트)

    코로나19가 장기화 되면서 위드(with) 코로나를 강조하는 시대에 이르렀습니다. 이제는 집에서의 생활이 일상이 되어야 하는 상황에서 라이더들을 위한 재미있고 합리적인 해결책을 알게 되었습니다. 사실 이 솔루션은 코로나19 이전부터 실내 라이팅 또는 훈련을 위해 사용되었다고 하는데 지금같은 시기에 들어서면서 대중들에게 알려진 것 같습니다. 얼마 전 동상이몽이라는 프로그램에서 송창의 배우가 나오는 씬을 보고 많은 사람들이 방구석 라이딩에 관심을 […]

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다