2014년 9월 17일 수요일

vagrant 기본 사용법

vagrant 란?

가상 환경 (VirtualBox 등)에서 가상 머신을 동작을 제어하는 도구

용어

공급자

  • 가상 환경을 말함. 
  •  ex.) VirtualBox와 VM Ware, EC2 등

프로비저닝

  • 미들웨어의 구성과 설치를 하는 도구 도구
  •  ex.) 쉘 스크립트 Chef (chef-solo, chef-client) Puppet 등

Box 파일

  • 가상 머신 시작시 기반이되는 이미지 파일
  • 가상 환경을 만드는데 필요함
  • 일반적으로 OS 이미지에서 작성한다.
  • Vagrant 를 사용할 때 최소한의 설정 조건
    • Vagrant 사용자
    • sshd 시작
    • 프로비저닝 도구

Vagrantfile

  • 가상 머신의 사양이나 프로비저닝 도구의 지정 등 가상 머신의 구성
  • Ruby 기반으로 작성
  • 기본적으로 파일과 프로비저닝 도구 설정로 2개의 파일이 있으면 동일한 환경을 구성할 수 있음

기본 명령어

버전 확인

$ vagrant -v

도움말

$ vagrant -h

가상 환경의 기반이되는 Box 파일을 준비

  • 다음의 명령으로 box를 받아서 로컬에 추가한다.
  • Vagrantfile의 config.vm.box 디렉토리로 지정
    $ vagrant box add NAME URL
    
$ vagrant box add centos64 http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130427.box
  • Box 파일은 Veewee으로 만들 수도있다. 참조

Box 목록 확인

$ vagrant box list

Vagrantfile 만들기(초기화)

$ vagrant init BOX_NAME
$ vagrant init centos64

Vagrantfile 설정

$ Vagrant.configure (VAGRANTFILE_API_VERSION) do | config |
     config.vm.box = "centos64"

     // 네트워크 설정
     config.vm.network : private_network, ip : "192.168.33.10"

     // GUI 모드의 설정
     config.vm.provider : virtualbox do | vb |
         vb.gui = true
     end
end
  • 호스트 온리 네트워크
    • 호스트 OS와 게스트 OS간에서만 통신을 할 수있는 네트워크.
    • 예시에서는 게스트에 192.168.33.10 (선택)을 할당

가상 머신의 시작

  • Vagrantfile과 같은 디렉토리에서 실행
    $ vagrant up
    
  • GUI 모드라면 VirtualBox를 시작할 때 id / pass를 모두 "vagrant" 로그인

ssh에 로그인

  • 가상 머신에서 sshd가 시작되어 있어야 사용할 수 있음
    $ vagrant ssh
    
  • 일반적인으로 ssh를 사용해서 vagrant를 사용한다.
$ ssh 192.168.33.10
  • 호스트에서 ssh 접속을 위한 설정방법
    # ~/.ssh/config
    Host 192.168.33. *
    IdentityFile ~ / .vagrant.d / insecure_private_key
    User vagrant
    
  • 가상 서버에 ssh 설정을 이용해서 로그인 할 수있다.
    $ vagrant ssh-config --host melody
    $ vagrant ssh-config --host melody >> ~ / .ssh / config
    
$ ssh melody

ssh 로그인시 설정 확인

$ vagrant ssh-config

status 확인

$ vagrant status
Current machine states :
default running (virtualbox)
(가상 머신 이름) (status)

가상 머신의 정지

$ vagrant halt

가상 컴퓨터 삭제

$ vagrant destroy

가상 머신 내보내기

$ vagrant package
  • package.box라는 Box 파일이 생성
이것을 배포 받는 쪽에서는 다음을 입력한다.
$ vagrant box add new_box package.box

댓글 없음:

댓글 쓰기