개발기에선 잘되던데…
서버와 동일한 개발환경 꾸미기
개발기에선 잘되던데…
• Human Error or Human Virus

•환경설정의 차이
• But… 이일 저일 하다보면… 서버랑 환경이
달라져요…
해결책은?

•가상머신
• 개발기 놔두고 왜?

• 여러 사람이 사용하지 않아
오염되지 않는다.
Vagrant
• “개발과 실서버의 일치를 위한 로컬 VM을
손쉽게 빌드하자.”
Vagrant
• https://github.com/mitchellh/vagrant
• Mac OS X 10.5+, Windows 7, Debian,
Ubuntu, Redhat, CentOS, Fedora, Arch,
...
설치
• VirtualBox 설치
•

https://www.virtualbox.org/wiki/Downloads

• Vagrant 설치
•

http://downloads.vagrantup.com/

• 패키지 방식...
Vagrant 프로젝트 셋업
• http://files.vagrantup.com/NAME.box
(lucid32, lucid64, precise32, precise64)

•http://vagrantbox.es
Vagrant 프로젝트 셋업
• VM 을 만들기 위한 이미지가 필요

•BOX
• 기본적으로 root파일시스템, Ram, Disk 사
이즈 같은 설정을 가지고 있는 기본 이미지
• Usage: vagrant box ad...
Vagrant 프로젝트 셋업
• cmd> vagrant init <name>
Vagrant 프로젝트 셋업
• cmd> vagrant up
Vagrant 프로젝트 셋업
• VM을 생성하고 실행하는 방법

•vagrant box add
•vagrant init
•vagrant up
어떻게 동작하는 거지?
• Command Line Interface
– vagrant [sub command]

•vagrantfile
– vagrantfile 이 생성된 디렉토리 = vagrnat 프로
젝트

–VM에...
어떻게 동작하는 거지?
어떻게 동작하는 거지?
• vagrangfile 로드 순서
• gem 디렉토리의 Vagrantfile이 로드됩니다. 이것은 모든 디폴
트들을 포함하고 수정되지 않습니다.
• box가 지정이 되었다면 box 디렉토리의 V...
vagrantfile 의 설정들
•
•
•
•
•
•

config.vm.auto_port_range
config.vm.base_mac
config.vm.boot_mode
config.vm.box
config.vm.bo...
MULTI VM
Vagrant::Config.run do |config|
config.vm.define :web do |web_config|
web_config.vm.box = "web"
web_config.vm.for...
Host-only Networking
Vagrant::Config.run do |config|
config.vm.define :web do |web_config|
# ...
web_config.vm.network :ho...
정리
• 실 서버 환경에 맞출려면 역시 어렵다.
• 한명이 총대 매고 box 만들면 나머지는 오
염 걱정없이 사용할 수 있다.
[세미나] Vagrant 이지원
[세미나] Vagrant 이지원
Upcoming SlideShare
Loading in...5
×

[세미나] Vagrant 이지원

970

Published on

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
970
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
26
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

[세미나] Vagrant 이지원

  1. 1. 개발기에선 잘되던데… 서버와 동일한 개발환경 꾸미기
  2. 2. 개발기에선 잘되던데… • Human Error or Human Virus •환경설정의 차이 • But… 이일 저일 하다보면… 서버랑 환경이 달라져요…
  3. 3. 해결책은? •가상머신 • 개발기 놔두고 왜? • 여러 사람이 사용하지 않아 오염되지 않는다.
  4. 4. Vagrant • “개발과 실서버의 일치를 위한 로컬 VM을 손쉽게 빌드하자.”
  5. 5. Vagrant • https://github.com/mitchellh/vagrant • Mac OS X 10.5+, Windows 7, Debian, Ubuntu, Redhat, CentOS, Fedora, Arch, and Gentoo •VirtualBox 에 의존
  6. 6. 설치 • VirtualBox 설치 • https://www.virtualbox.org/wiki/Downloads • Vagrant 설치 • http://downloads.vagrantup.com/ • 패키지 방식의 설치 권장 • 지원되는것이 없다면… cmd> gem install vagrant <- 루비필요
  7. 7. Vagrant 프로젝트 셋업 • http://files.vagrantup.com/NAME.box (lucid32, lucid64, precise32, precise64) •http://vagrantbox.es
  8. 8. Vagrant 프로젝트 셋업 • VM 을 만들기 위한 이미지가 필요 •BOX • 기본적으로 root파일시스템, Ram, Disk 사 이즈 같은 설정을 가지고 있는 기본 이미지 • Usage: vagrant box add <name> <url> • 저장경로: %HOMEPATH%.vagrant.dboxes
  9. 9. Vagrant 프로젝트 셋업 • cmd> vagrant init <name>
  10. 10. Vagrant 프로젝트 셋업 • cmd> vagrant up
  11. 11. Vagrant 프로젝트 셋업 • VM을 생성하고 실행하는 방법 •vagrant box add •vagrant init •vagrant up
  12. 12. 어떻게 동작하는 거지? • Command Line Interface – vagrant [sub command] •vagrantfile – vagrantfile 이 생성된 디렉토리 = vagrnat 프로 젝트 –VM에 대한 모든 초기 설정을 관리
  13. 13. 어떻게 동작하는 거지?
  14. 14. 어떻게 동작하는 거지? • vagrangfile 로드 순서 • gem 디렉토리의 Vagrantfile이 로드됩니다. 이것은 모든 디폴 트들을 포함하고 수정되지 않습니다. • box가 지정이 되었다면 box 디렉토리의 Vagrantfile이 로드됩 니다. 만약 패키징할 때 --vagrantfile 옵션을 사용했다면, 이것 은 그 box 안에 패키지된 vagrantfile입니다. • home 디렉토리(디폴트 ~/.vagrant.d/)의 vagrantfil가 있다면 그 것이 로드됩니다. 이 vagrantfile에 사용자에게 특화될 수 있는 몇 가지 디폴트값을 설정할 수 있습니다. • 프로젝트 디렉토리의, 사용자가 수정할 수 있는 vagrantfile이 로드됩니다.
  15. 15. vagrantfile 의 설정들 • • • • • • config.vm.auto_port_range config.vm.base_mac config.vm.boot_mode config.vm.box config.vm.box_url config.vm.customize • config.vm.define • • • config.vm.forward_port config.vm.guest config.vm.host_name • • config.vm.network config.vm.provision • • • • • • • • • • • • • • • • config.vm.share_folder config.nfs.map_uid config.nfs.map_gid config.package.name config.ssh.username config.ssh.host config.ssh.port config.ssh.guest_port config.ssh.max_tries config.ssh.timeout config.ssh.private_key_path config.ssh.forward_agent config.ssh.forward_x11 config.ssh.shell config.vagrant.dotfile_name config.vagrant.host
  16. 16. MULTI VM Vagrant::Config.run do |config| config.vm.define :web do |web_config| web_config.vm.box = "web" web_config.vm.forward_port end 8080, 8088 config.vm.define :db do |db_config| db_config.vm.box = "db" db_config.vm.forward_port end end cmd> vagrant up web cmd> vagrant ssh web 3306, 3306
  17. 17. Host-only Networking Vagrant::Config.run do |config| config.vm.define :web do |web_config| # ... web_config.vm.network :hostonly, "10.11.12.13" end config.vm.define :db do |db_config| # ... db_config.vm.network :hostonly, "10.11.12.14" end end
  18. 18. 정리 • 실 서버 환경에 맞출려면 역시 어렵다. • 한명이 총대 매고 box 만들면 나머지는 오 염 걱정없이 사용할 수 있다.
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×