본문 바로가기

카테고리 없음

Vagrant - Part 1

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 이미지가 정상적으로 구동되었음을 볼 수 있다.