카테고리 없음

Vagrant - Part 1

지기(ZIGI) 2015. 7. 17. 01:34

Today Key : Vagrant, Development, Environment, lightweight, reproducible, portable, Automation

 

 


 

 

 


 

 

Vagrant

 

개 요

  ▪ 2010년 1월에 Mitchell Hashimoto에 이해 시작된 Open Source Project.

  ▪ 일종의 VM 관리 도구

 ▪ 완벽한 개발 환경을 구축하기 위한 도구

     - 환경 구축의 자동화 및 일치

 ▪ 동일한 VM 환경을 사용하기 쉬운 Workflow 및 자동화에 초점을 맞춰서, 개발 환경을 위한 구축에 필요한 시간을 줄이고,

   개발/생산성을 높이면서 환경의 상이함에 따라서 정상적으로 동작하지 않았던 문제점을 해결.

   

 

특 징

  ▪ VirtualBox(default), Vmware(별도 사용 라이선스 필요), AWS 등을 지원

  ▪ VirtualBox를 기본으로 지원하며, Vmware와 같은 다른 Provider 지원을 위해서는 별도의 Plugin 설치 필요

  ▪ Wndows, Linux(Debian / Redhat 계열), MAC OS X

  ▪ Shell Scripts, Chef, Puppet 등을 지원

  ▪ Ruby 스크립트로 작성

  ▪ 수 분내로 전체 시스템을 어디에서나 구축 가능하며, 어디서나 동일한 환경을 구축

  ▪ Single file (Vagrant 파일) / Single command (vagrant up)

 

 

구성 요소

  ▪ Box

      - VM을 만들기 위한 기본 OS 이미지를 포함한 VM 설정에 대한 템플릿

     - 이미 만들어진 BOX 파일을 가져오거나, 직접 원하는 환경으로 생성 가능.

     - 공개 Box 파일 공유 사이트 :   http://www.vagrantbox.es

                                                                        https://atlas.hashicorp.com/boxes/search

 

 

 

   ▪ Vagrant File

      - Vagrant를 사용하여 VM 생성 시에 필요한 초기 설정 파일

           : Box File, VM hardware 설정(CPU, Memory, Network Card, Port forwarding  etc)

       - Vagrant init 명령 수행을 하게 되면 Vagrantfile 이라는 이름의 파일로 생성.

 

 

Provisioning

  ▪ VM 생성 시에, Shell Script나 Automation Tool인 Chef, Puppet 등을 사용하여 VM에 대한 Provision을 수행할 수 있다

  ▪ 해당 Provision에 대한 사항은 Vagrantfile에서 실행될 수 있도록 작성한다. (실제 실행 코드는 별도)

 

 

 

 

 


 

  

Vagrant 설치하기

  ▪ Vagrant 홈페이지에서 설치 파일을 다운받아서 실행하고, 그냥 Next만 눌러도 설치가 완료된다.

     - 아래 예에서는 설치 위치만 임의로 변경하였다.

 

 

 

 

 

 

 

 

 


 

  

Vagrant 실행해보기

  ▪ VM BOX 이미지를 가지고, VM을 하나 생성.

  ▪ Vagrant BOX 이미지 받기

       - vagrant box add box_name  box_url

       - 본 예제에서는 Cent OS 5.6 Minimal 버전 다운

  ▪ Vagrant 초기화 

       - vagrant init box_name

       - Vagrantfile 생성 됨.

       - 별도의 BOX 이미지를 받지 않고, 기본 BOX 공유 웹에 있는 BOX_Name으로 지정할 경우에 해당 Web에서 자동 다운

 

 

 

 

  ▪ Vagrantfile 보기

       - VM 생성에 필요한 다양한 옵션을 지정할 수 있음.

 

 

 

 

  ▪ Vagrant 실행

       - Vagrantfile의 초기 상태 값에 따라서 VM을 생성

       - Vagrant up

 

 

  ▪ VirtualBOX 확인

       - 정상적으로 VirtualBOX에 VM 생성 확인

 

 

 

  ▪ VM 접속확인

       - VM에 접속하여 확인을 해보면, 초기에 다운 받은 CentOS 5.6 BOX 이미지가 정상적으로 구동되었음을 볼 수 있다.