98
내 컴에선 잘 되던데? Vagrant로 서버와 동일한 개발환경 꾸미기 기술전략팀 | 강소리

[H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

  • Upload
    kth-

  • View
    15.547

  • Download
    6

Embed Size (px)

DESCRIPTION

H3 2012 발표자료 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기 -KTH 강소리

Citation preview

Page 1: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

내 컴에선 잘 되던데?Vagrant로 서버와동일한 개발환경 꾸미기기술전략팀 | 강소리

Page 2: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

@curioe 강소리입니다

Page 3: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

@curioe 강소리입니다

ravash

Page 4: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

디버깅의 6단계

디버깅의 6단계

Page 5: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

디버깅의 6단계

디버깅의 6단계

1. 에러라고? 그럴 리 없어 ······················ 부정

Page 6: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

디버깅의 6단계

디버깅의 6단계

1. 에러라고? 그럴 리 없어 ······················ 부정2. 내 컴에선 잘 되던데? 회피························

Page 7: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

디버깅의 6단계

디버깅의 6단계

1. 에러라고? 그럴 리 없어 ······················ 부정2. 내 컴에선 잘 되던데? ························ 회피3. 그럴리가 없을텐데 ···························· 의심

Page 8: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

디버깅의 6단계

디버깅의 6단계

1. 에러라고? 그럴 리 없어 ······················ 부정2. 내 컴에선 잘 되던데? ························ 회피3. 그럴리가 없을텐데 ···························· 의심4. 왜 그렇게 되었지? 분석····························

Page 9: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

디버깅의 6단계

디버깅의 6단계

1. 에러라고? 그럴 리 없어 ······················ 부정2. 내 컴에선 잘 되던데? ························ 회피3. 그럴리가 없을텐데 ···························· 의심4. 왜 그렇게 되었지? ···························· 분석 5. 헉... 알았다! 각성···································

Page 10: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

디버깅의 6단계

디버깅의 6단계

1. 에러라고? 그럴 리 없어 ······················ 부정2. 내 컴에선 잘 되던데? ························ 회피3. 그럴리가 없을텐데 ···························· 의심4. 왜 그렇게 되었지? ···························· 분석 5. 헉... 알았다! ··································· 각성6. 이게 어떻게 동작했던거지? @.@ 반성·········

Page 11: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

디버깅의 6단계

디버깅의 6단계

1. 에러라고? 그럴 리 없어 ······················ 부정2. 내 컴에선 잘 되던데? ························ 회피2. 내 컴에선 잘 되던데? ························ 회피3. 그럴리가 없을텐데 ···························· 의심4. 왜 그렇게 되었지? ···························· 분석 5. 헉... 알았다! ··································· 각성6. 이게 어떻게 동작했던거지? @.@ ········· 반성

Page 12: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

왜 내 컴에서만 잘 되는 걸까?

개발 환경 불일치

Image - http://futurist.se/gldt/page/3/

Page 13: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

왜 내 컴에서만 잘 되는 걸까?

개발 환경 불일치

Page 14: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

왜 내 컴에서만 잘 되는 걸까?

프로젝트마다 다 달라

Image - http://itprojectguide.blogspot.kr/2007/02/project-variation.html

Page 15: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

해결책은 있어요

해결책은 있어요

Image - http://www.flickr.com/photos/86979666@N00/7623744678/

Page 16: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

해결책은 가상화

해결책은 가상화

Page 17: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

해결책은 가상화

로컬에 서버 VM 설치

Image - http://www.flickr.com/photos/catch2205/4361365020/sizes/o/in/photostream/

Page 18: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

해결책은 가상화

Page 19: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

해결책은 가상화

Page 20: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

해결책은 가상화

쓰기 불편한 것은 마찬가지

Page 21: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

로컬 가상머신을 손쉽게 빌드하자

로컬 가상머신을 손쉽게 관리하자.

Page 22: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

개발과 실서버의 일치를 위해

개발과 실서버의 일치를 위해로컬 가상머신을 손쉽게 관리하자.

Page 23: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

vagrant up

$ vagrant up

Page 24: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant를 소개합니다.

Vagrant

개발과 실서버의 일치를 위해 로컬 가상머신을 손쉽게 관리하자.

Page 25: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant를 소개합니다.

Vagrant

가상머신 관리 툴http://vagrantup.com

Page 26: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant를 소개합니다.

Vagrant

@mitchellh오픈소스 MIT 라이센스Ruby현재 1.0.5 << 1.0.0 - 2012.03.07 << 0.1.0 - 2010.03.07

Page 27: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant를 소개합니다.

Page 28: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant로 로컬에 VM 실행하기

Ubuntu VM

우분투 10.04

Page 29: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant로 로컬에 우분투 VM 실행하기

준비물

Page 30: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant로 로컬에 우분투 VM 실행하기

VirtualBox 설치

http://virtualbox.org

Page 31: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant로 로컬에 우분투 VM 실행하기

Vagrant 설치

http://downloads.vagrantup.com

Page 32: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant로 로컬에 우분투 VM 실행하기

$ vagrantUsage: vagrant [-v] [-h] command [<args>]

-v, --version Print the version and exit. -h, --help Print this help.

Available subcommands: box destroy gem halt init package provision reload resume ssh ssh-config status suspend up

Command Line Interface

GUI 없어요

Page 33: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant로 로컬에 우분투 VM 실행하기

lucid32 ↵@work$ vagrant box add ↵

http://files.vagrantup.com/lucid32.box@work$

미리 빌드된 우분투 10.04 가상머신 이미지

내 로컬에서의 별칭

Page 34: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant로 로컬에 우분투 VM 실행하기

@work$ mkdir project@work$ cd project@project$

http://files.vagrantup.com/lucid32.box

@work$ vagrant box add lucid32

Page 35: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant로 로컬에 우분투 VM 실행하기

@work$ mkdir project@work$ cd project

http://files.vagrantup.com/lucid32.box

@work$ vagrant box add lucid32

@project$ vagrant init lucid32@project$

방금 우분투 가상머신 별칭

Page 36: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant로 로컬에 우분투 VM 실행하기

@work$ mkdir project@work$ cd project

http://files.vagrantup.com/lucid32.box

@work$ vagrant box add lucid32

@project$ vagrant up@project$

@project$ vagrant init lucid32

Page 37: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant로 로컬에 우분투 VM 실행하기

@project$ vagrant sshLinux lucid32 2.6.32-38-generic #83-Ubuntu SMP Wed Jan 4 11:13:04 UTC 2012 i686 GNU/LinuxUbuntu 10.04.4 LTS

Welcome to Ubuntu! * Documentation: https://help.ubuntu.com/New release 'precise' available.Run 'do-release-upgrade' to upgrade to it.

Welcome to your Vagrant-built virtual machine.Last login: Fri Sep 14 07:26:29 2012 from 10.0.2.2

vagrant@lucid32:~$ Linux lucid32 2.6.32-38-generic #83-Ubuntu SMP Wed Jan 4 11:13:04 UTC 2012 i686 GNU/Linuxvagrant@lucid32:~$

uname -na

Page 38: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant로 로컬에 우분투 VM 실행하기

@work$ mkdir project@work$ cd project

http://files.vagrantup.com/lucid32.box

@work$ vagrant box add lucid32

@project$ vagrant up@project$

@project$ vagrant init lucid32

Page 39: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant 기본 지식

h3@work$ mkdir projecth3@work$ cd project

http://files.vagrantup.com/lucid32.box

@work$ vagrant box add lucid32

@project$ vagrant up@project$ vagrant init lucid32

요 명령만 알아도

충분해요.

Page 40: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant 기본 지식

BOX

@work$ vagrant box add <name> <url>

VM 이미지 다운로드

Page 41: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant 기본 지식

기본 설정을 가진 VM 템플릿 이미지

Box

Page 42: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant 기본 지식

메모리파일시스템네트워크

기본 설정을 가진 VM 템플릿 이미지

Box

Page 43: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant 기본 지식

$ vagrant box add lucid32 http://~~$ cd ~/.vagrant.d/box@$[HOME]/.vagrant.d/box$ ls -aldrwxr-xr-x Oct 31 17:07 lucid32

Ubuntu VMUbuntu Ubuntu VM

Ubuntu VM

Ubuntu VM

Ubuntu VM

Page 44: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant 기본 지식

box 다운로드

공식http://files.vagrantup.com/[box이름].box

- lucid32, lucid64, precise32, precise64

3rd partyhttp://vagrantbox.es

Page 45: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant 기본 지식

@project$ vagrant init <box-name>

Vagrantfile

Vagrant 프로젝트 설정 파일

Page 46: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant 기본 지식

# -*- mode: ruby -*-# vi: set ft=ruby :Vagrant::Config.run do |config| # Every Vagrant virtual environment requires a box to build off of. config.vm.box = "lucid32" # The url from where the 'config.vm.box' box will be fetched if it # doesn't already exist on the user's system. config.vm.box_url = "http://files.vagrantup.com/lucid32.box" # Forward a port from the guest to the host, which allows for outside # computers to access the VM, whereas host only networking does not. config.vm.forward_port 8080, 8088 # Share an additional folder to the guest VM. The first argument is # an identifier, the second is the path on the guest to mount the # folder, and the third is the path on the host to the actual folder. config.vm.share_folder "v-showcase", "/service", "spring-mvc-showcase" # Update Server config.vm.provision :shell do |shell| shell.inline = "apt-get update --fix-missing" endend

$ vagrant init lucid32

Page 47: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant로 개발 환경 구성하기

미니 개발 상황극

Page 48: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant로 개발 환경 구성하기

개발자 5명서버: 우분투 10.04

SW: 자바6, 메이븐2(톰캣)소스위치: /service

포트: 8080

Page 49: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant로 개발 환경 구성하기

우분투 ! =윈도우 2맥 2 우분투 110.04

12.04

문제 #1

서버 로컬

Page 50: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant로 개발 환경 구성하기

자바 1.6.0_24메이븐 2.2.1

문제 #2

서버 로컬

자바 1.7

자바 1.6.0_24메이븐 2.2.1

설치환경 문서 공유; 버전 제각각 위험

Page 51: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant로 개발 환경 구성하기

localhost:8080/spring-mvc-showcase

문제 #3

Address already in use

8080

Page 52: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant로 개발 환경 구성하기

소프트웨어 다운로드 + 설치 + 설정

문제 #4

( ) * 5

Page 53: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant로 개발 환경 구성하기

“Vagrant 를 사용해보자”

Page 54: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant로 개발 환경 구성하기

@work$ cd project@project$ lsVagrantfile@project$ vagrant up@project$

Page 55: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant로 개발 환경 구성하기

우분투윈도우 2맥 2 우분투 110.04

12.04

문제 #1 해결

서버 로컬Ubuntu VM

Ubuntu VM

Ubuntu VM

= =

Page 56: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant로 개발 환경 구성하기

@project$ git clone https://github.com/SpringSource/spring-mvc-showcase@project$@project$ lsVagrantfile spring-mvc-showcase

Page 57: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant로 개발 환경 구성하기

$ vagrant ssh vagrant@lucid32:~$ sudo apt-get install openjdk-6-jdkvagrant@lucid32:~$ sudo apt-get install maven2vagrant@lucid32:~$vagrant@lucid32:~$ java -versionjava version "1.6.0_24"OpenJDK Runtime Environment (IcedTea6 1.11.5) (6b24-1.11.5-0ubuntu1~10.04.2)OpenJDK Client VM (build 20.0-b12, mixed mode, sharing)vagrant@lucid32:~$vagrant@lucid32:~$ mvn -versionApache Maven 2.2.1 (rdebian-1)Java version: 1.6.0_24Java home: /usr/lib/jvm/java-6-openjdk/jreDefault locale: en_US, platform encoding: ANSI_X3.4-1968OS name: "linux" version: "2.6.32-38-generic" arch: "i386" Family: "unix"

Page 58: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant로 개발 환경 구성하기

$ vagrant package

Page 59: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant로 개발 환경 구성하기

box 공유curioe$ vagrant packagecurioe$

Page 60: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant로 개발 환경 구성하기

box 공유curioe$ vagrant packagecurioe$

Page 61: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant로 개발 환경 구성하기

box 공유curioe$ vagrant packagecurioe$

tebica$ vagrant box add newbox http://kthcorp.com/package.box

Page 62: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant로 개발 환경 구성하기

box 공유curioe$ vagrant packagecurioe$

tebica$ vagrant init newboxtebica$ vagrant uptebica$

tebica$ vagrant box add newbox http://kthcorp.com/package.box

Page 63: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant로 개발 환경 구성하기

소프트웨어 다운로드 + 설치 + 설정

문제 #2, #4 동시 해결

환경이 설치된 box 공유버전 설정 모두 동일

1명만

Page 64: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant로 개발 환경 구성하기

미니 개발 상황극 (계속)

“VM쓰라고?”“로그인해서 개발해야해?”“내가 쓰는 에디터 쓰고 싶은데!”

Page 65: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

거룩한 전쟁

돌발상황

에막스 지옥! 진리의 젯브레인!이클립스 완전구려!

SublimeText 2가 대세

Vim이 최고!싸우자

구글 행아웃에서싸우자!

Page 66: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant로 개발 환경 구성하기

파일 동기화

config.vm.share_folder “v-data”,“/service”, “spring-mvc-showcase”

$ vagrant reload

Page 67: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant로 개발 환경 구성하기

파일 동기화

Host

VM

spring-mvc-showcase

service

Page 68: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant로 개발 환경 구성하기

에막스 지옥! 진리의 젯브레인!이클립스 완전구려!

SublimeText 2가 대세

Vim이 최고!싸우자

구글 행아웃에서싸우자!

프로젝트는 무사 진행

Page 69: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant로 개발 환경 구성하기

포트 포워딩

config.vm.forward_port 8080, 8088

Outside(Host(

VM(:8080( :8088(

$ vagrant reload

Page 70: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant로 개발 환경 구성하기

localhost:

문제 #3 해결

8080

/spring-mvc-showcase

8088

8088

Page 71: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant로 개발 환경 구성하기

SSH

$ vagrant ssh

$ ssh vagrant@localhost -p 2222

Outside(Host(

VM(:22( :2222(

Page 72: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant로 개발 환경 구성하기

$ git add Vagrantfile$ git commit -m ‘개발 환경 설정’$ git push

Page 73: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant로 개발 환경 구성하기

설치 환경 문서로 공유설치 환경 자체가 공유

서버 OS != 로컬 OS서버 OS == 로컬 OS

소프트웨어 버전 불일치소프트웨어 버전 전부 일치개발자마다 개발 환경 구축설치는 단 한명이!쓰고 있는 포트 충돌손쉬운 포트 포워딩

Page 74: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant로 개발 환경 구성하기

$ vagrant destroy

Page 75: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant로 개발 환경 구성하기

“사실은 더 복잡해요”

Page 76: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

분산 환경 구성하기

Vagrant::Config.run do |config| config.vm.define :web do |web_config| web_config.vm.box = "web" web_config.vm.forward_port 80, 8080 end

config.vm.define :db do |db_config| db_config.vm.box = "db" db_config.vm.forward_port 3306, 3306 endend

Multi-VM

Page 77: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

분산 환경 구성하기

Vagrant::Config.run do |config| config.vm.define :web do |web_config| web_config.vm.box = "web" web_config.vm.forward_port 80, 8080 end

config.vm.define :db do |db_config| db_config.vm.box = "db" db_config.vm.forward_port 3306, 3306

endend

Host-Only 네트워킹

web_config.vm.network :hostonly, "10.11.12.13"

db_config.vm.network :hostonly, "10.11.12.14"

Page 78: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant 사용

일반적인 사용법

1. box 는 사내 웹서버에 업로드

2. 프로젝트 내에 Vagrantfile을 포함

3. Vagrant 사용

$ git add Vagrantfile$ git commit -m ‘개발 환경 설정’

$ vagrant box add ~

$ vagrant up

Page 79: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant 사용

facebook/tornado

https://github.com/facebook/tornado/blob/master/maint/vm/ubuntu10.04/Vagrantfile

Page 80: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

프로비저닝

조금 아쉬워요

소프트웨어 버전 업데이트box는 이미 배포 완료

Page 81: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

프로비저닝

프로비저닝

Image - http://www.scalarium.com/features/automation/

Page 82: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

프로비저닝

프로비저닝

config.vm.provision :{provisioner}

puppetchefshell

Page 83: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Chef 프로비저닝

Chef Server 프로비저닝

Page 84: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Chef 프로비저닝

Chef Server 프로비저닝

VM

Page 85: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Chef 프로비저닝

Chef Server 프로비저닝config.vm.provision :chef_client do |chef| chef.chef_server_url = "http://cocina.kthcorp.com" chef.validation_key_path = "chef/validation.pem" chef.run_list = ["role[baas]"]end

Page 86: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Chef 프로비저닝

“Chef 서버 없어도 실망 마세요~”

Page 87: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Chef Solo 프로비저닝

Chef 프로비저닝

VM

Page 88: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Chef 프로비저닝

Chef Solo 프로비저닝

https://github.com/curioe/vagrant_sample

!"" cookbooks #"" apache2 #"" apt #"" php !"" php_sample

config.vm.provision :chef_solo do |chef| chef.cookbooks_path = "cookbooks" chef.add_recipe "php_sample"end

Page 89: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Chef 프로비저닝

Page 90: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

Vagrant로 VM을 관리하자

Vagrant

개발과 실서버의 일치를 위해 로컬 가상머신을 손쉽게 관리하자.

Page 91: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

vagrant up

프로젝트를 새로 시작할 때

Page 92: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

vagrant up

$ vagrant up$ vagrant up$ vagrant up

Page 93: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

vagrant up

프로젝트에 새 동료가 참여할 때

Page 94: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

vagrant up

$ vagrant up$ vagrant up$ vagrant up

Page 95: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

vagrant up

서버와 동일한개발 환경을 꾸미기 위해

Page 96: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

vagrant up

$ vagrant up$ vagrant up$ vagrant up

Page 97: [H3 2012] 내컴에선 잘되던데? - vagrant로 서버와 동일한 개발환경 꾸미기

감사합니다.개발실 / 기술전략팀 / 강소리[email protected]

@curioe