Download - Vagrant와 chef로 개발서버 구축 자동화하기
Vagrant와����������� ������������������ Chef로����������� ������������������ 개발서버����������� ������������������ 구축
자동화하기
1
박용권SK����������� ������������������ planet����������� ������������������ /����������� ������������������ Platform����������� ������������������ Software����������� ������������������ 개발팀
반갑습니다.
-����������� ������������������ 한국����������� ������������������ 스프링����������� ������������������ 사용자����������� ������������������ 그룹(KSUG)-����������� ������������������ 봄싹(SpringSprout)-����������� ������������������ 라����������� ������������������ 스칼라����������� ������������������ 코딩단(La����������� ������������������ Scala����������� ������������������ Coding����������� ������������������ Dan)-����������� ������������������ ...
2
이야깃거리가상화����������� ������������������ 그리고����������� ������������������ Vagrant!
설정����������� ������������������ 자동화를����������� ������������������ 위한����������� ������������������ Chef!
개발서버����������� ������������������ 구축����������� ������������������ 자동화����������� ������������������ 예제!
3
Server
4
서버����������� ������������������ :����������� ������������������ 개발����������� ������������������ /����������� ������������������ 테스트����������� ������������������ /����������� ������������������ 이관����������� ������������������ /����������� ������������������ 운영
개발
테스트
이관
운영
개발자
품질관리자
시스템관리자
5
서버����������� ������������������ :����������� ������������������ 개발����������� ������������������ /����������� ������������������ 테스트����������� ������������������ /����������� ������������������ 이관����������� ������������������ /����������� ������������������ 운영
개발
테스트
이관
운영
개발자
품질관리자
시스템관리자
6
개발자����������� ������������������ PC����������� ������������������ ==����������� ������������������ 개발서버
개발자
7
개발자����������� ������������������ PC����������� ������������������ ==����������� ������������������ 개발서버
개발자
8
개발자����������� ������������������ PC����������� ������������������ ==����������� ������������������ 개발서버
개발자
9
개발자����������� ������������������ PC����������� ������������������ ==����������� ������������������ 개발서버
개발자
10
난.장.판.
11
H3����������� ������������������ 컨퍼런스에서����������� ������������������ 해결책을����������� ������������������ 찾다!
12
가상화����������� ������������������ 그리고����������� ������������������ Vagrant!
+
13
가상화는����������� ������������������ 이미����������� ������������������ 사용하고����������� ������������������ 있었지만...
14
가상화는����������� ������������������ 이미����������� ������������������ 사용하고����������� ������������������ 있었지만...
14
가상화는����������� ������������������ 이미����������� ������������������ 사용하고����������� ������������������ 있었지만...
14
가상화는����������� ������������������ 이미����������� ������������������ 사용하고����������� ������������������ 있었지만...
14
가상화는����������� ������������������ 이미����������� ������������������ 사용하고����������� ������������������ 있었지만...
14
가상화는����������� ������������������ 이미����������� ������������������ 사용하고����������� ������������������ 있었지만...
14
가상화는����������� ������������������ 이미����������� ������������������ 사용하고����������� ������������������ 있었지만...
14
가상화는����������� ������������������ 이미����������� ������������������ 사용하고����������� ������������������ 있었지만...
15
Vagrant를����������� ������������������ 소개합니다.
가상머신����������� ������������������ 관리����������� ������������������ 도구@mitchellh오픈소스����������� ������������������ MIT����������� ������������������ 라이센스Ruby����������� ������������������ 기반����������� ������������������ 설정v1.0.5
16
Vagrant����������� ������������������ :����������� ������������������ Quick����������� ������������������ Start����������� ������������������ -����������� ������������������ 1/3
1.����������� ������������������ VirtualBox����������� ������������������ 설치
17
Vagrant����������� ������������������ :����������� ������������������ Quick����������� ������������������ Start����������� ������������������ -����������� ������������������ 2/3
2.����������� ������������������ Vagrant����������� ������������������ 설치
18
Vagrant����������� ������������������ :����������� ������������������ Quick����������� ������������������ Start����������� ������������������ -����������� ������������������ 3/3
3.����������� ������������������ Ubuntu����������� ������������������ 10.04����������� ������������������ 가상머신����������� ������������������ 설치����������� ������������������ 및����������� ������������������ 구동
$����������� ������������������ vagrant����������� ������������������ box����������� ������������������ add����������� ������������������ base����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ http://files.vagrantup.com/lucid32.box
[vagrant]����������� ������������������ Downloading����������� ������������������ with����������� ������������������ Vagrant::Downloaders::HTTP...[vagrant]����������� ������������������ Downloading����������� ������������������ box:����������� ������������������ http://files.vagrantup.com/lucid32.box
$����������� ������������������ vagrant����������� ������������������ init
A����������� ������������������ `Vagrantfile`����������� ������������������ has����������� ������������������ been����������� ������������������ placed����������� ������������������ in����������� ������������������ this����������� ������������������ directory.����������� ������������������ You����������� ������������������ are����������� ������������������ now����������� ������������������ ready����������� ������������������ to����������� ������������������ `vagrant����������� ������������������ up`����������� ������������������ your����������� ������������������ first����������� ������������������ virtual����������� ������������������ environment!����������� ������������������ Please����������� ������������������ read����������� ������������������ the����������� ������������������ comments����������� ������������������ in����������� ������������������ the����������� ������������������ Vagrantfile����������� ������������������ as����������� ������������������ well����������� ������������������ as����������� ������������������ documentation����������� ������������������ on����������� ������������������ `vagrantup.com`����������� ������������������ for����������� ������������������ more����������� ������������������ information����������� ������������������ on����������� ������������������ using����������� ������������������ Vagrant.
$����������� ������������������ vagrant����������� ������������������ up
[default]����������� ������������������ Importing����������� ������������������ base����������� ������������������ box����������� ������������������ 'base'...
19
Vagrant����������� ������������������ 기본지식����������� ������������������ :����������� ������������������ Command����������� ������������������ Line����������� ������������������ Interface
$����������� ������������������ 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
For����������� ������������������ help����������� ������������������ on����������� ������������������ any����������� ������������������ individual����������� ������������������ command����������� ������������������ run����������� ������������������ `vagrant����������� ������������������ COMMAND����������� ������������������ -h`
CommandLineInterface
20
Vagrant����������� ������������������ 기본지식����������� ������������������ :����������� ������������������ Box
Box����������� ������������������ :����������� ������������������ 기본����������� ������������������ 설정����������� ������������������ 및����������� ������������������ OS가����������� ������������������ 설치된����������� ������������������ VM����������� ������������������ 템플릿����������� ������������������ 이미지
메모리네트워크파일시스템운영체제공유폴더SSH...
21
Vagrant����������� ������������������ 기본지식����������� ������������������ :����������� ������������������ Box
Box����������� ������������������ 저장소
$����������� ������������������ vagrant����������� ������������������ box����������� ������������������ add����������� ������������������ ubuntu32����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ http://boxes.com/ubuntu32.box
$����������� ������������������ vagrant����������� ������������������ box����������� ������������������ add����������� ������������������ win2k����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ http://boxes.com/win2k.box
$����������� ������������������ vagrant����������� ������������������ box����������� ������������������ add����������� ������������������ centos51����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ http://boxes.com/centos51.box
22
Vagrant����������� ������������������ 기본지식����������� ������������������ :����������� ������������������ Box
제공되는����������� ������������������ Box:����������� ������������������ http://www.vagrantbox.es/
23
Vagrant����������� ������������������ 기본지식����������� ������������������ :����������� ������������������ Vagrantfile
Ruby����������� ������������������ 기반에����������� ������������������ Vagrant����������� ������������������ 프로젝트����������� ������������������ 설정����������� ������������������ 파일
# -*- mode: ruby -*-# vi: set ft=ruby :
Vagrant::Config.run do |config|
config.vm.box = "Ubuntu lucid 64" config.vm.box_url = "http://files.vagrantup.com/lucid64.box"
# config.vm.boot_mode = :headless# config.vm.network :hostonly, "192.168.10.1"# config.vm.network :bridged# config.vm.forward_port 80, 8080# config.vm.share_folder "v-data", "/vagrant_data", "../data"
end
24
Vagrant����������� ������������������ :����������� ������������������ 개발환경����������� ������������������ 구성하기����������� ������������������ -����������� ������������������ 1/3
Box����������� ������������������ 저장소
$����������� ������������������ vagrant����������� ������������������ package����������� ������������������ dev.box$����������� ������������������ scp����������� ������������������ dev.box����������� ������������������ [email protected]:...
형상관리����������� ������������������ 저장소
$����������� ������������������ cat����������� ������������������ >����������� ������������������ Vagrantfile����������� ������������������ ����������� ������������������ ����������� ������������������ ....$����������� ������������������ svn����������� ������������������ add����������� ������������������ Vagrantfile$����������� ������������������ svn����������� ������������������ commit����������� ������������������ -m����������� ������������������ “개발서버����������� ������������������ 구성”
25
Vagrant����������� ������������������ :����������� ������������������ 개발환경����������� ������������������ 구성하기����������� ������������������ -����������� ������������������ 2/3
Box����������� ������������������ 저장소
$����������� ������������������ vagrant����������� ������������������ package����������� ������������������ dev.box$����������� ������������������ scp����������� ������������������ dev.box����������� ������������������ [email protected]:...
형상관리����������� ������������������ 저장소
$����������� ������������������ cat����������� ������������������ >����������� ������������������ Vagrantfile����������� ������������������ ����������� ������������������ ����������� ������������������ ....$����������� ������������������ svn����������� ������������������ add����������� ������������������ Vagrantfile$����������� ������������������ svn����������� ������������������ commit����������� ������������������ -m����������� ������������������ “개발서버����������� ������������������ 구성”
26
Vagrant����������� ������������������ :����������� ������������������ 개발환경����������� ������������������ 구성하기����������� ������������������ -����������� ������������������ 3/3
$����������� ������������������ svn����������� ������������������ checkout����������� ������������������ svn://...$����������� ������������������ vagrant����������� ������������������ up
$����������� ������������������ svn����������� ������������������ checkout����������� ������������������ svn://...$����������� ������������������ vagrant����������� ������������������ up
Box����������� ������������������ 저장소
형상관리����������� ������������������ 저장소
27
Vagrant����������� ������������������ :����������� ������������������ 해결되지����������� ������������������ 않은����������� ������������������ 문제점...
이미...����������� ������������������ ����������� ������������������ ����������� ������������������ Box는...����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ 배포되었다!?
28
Provisioning
프로비저닝(Provisioning)
29
Provisioning
Configuration����������� ������������������ /����������� ������������������ System����������� ������������������ Management����������� ������������������ Tools
Shell
30
Provisioning
Configuration����������� ������������������ /����������� ������������������ System����������� ������������������ Management����������� ������������������ Tools
Shell
31
Provisioning
Configuration����������� ������������������ /����������� ������������������ System����������� ������������������ Management����������� ������������������ Tools
Shell
32
Chef를����������� ������������������ 소개합니다.
오픈����������� ������������������ 소스����������� ������������������ 시스템����������� ������������������ 관리����������� ������������������ 프레임워크OPSCODE(www.opscode.com)2009년����������� ������������������ 1월에����������� ������������������ 정식����������� ������������������ 발표루비����������� ������������������ 기반����������� ������������������ DSL(Domain����������� ������������������ Specific����������� ������������������ Language)풍부한����������� ������������������ 기반����������� ������������������ 설정����������� ������������������ 파일����������� ������������������ 제공(github.com/opscode/cookbooks)
33
Chef����������� ������������������ :����������� ������������������ 뭘����������� ������������������ 할����������� ������������������ 수����������� ������������������ 있나요?
34
Chef����������� ������������������ :����������� ������������������ 뭘����������� ������������������ 할����������� ������������������ 수����������� ������������������ 있나요?
복잡해!!!
35
Chef����������� ������������������ :����������� ������������������ 뭘����������� ������������������ 할����������� ������������������ 수����������� ������������������ 있나요?
1.����������� ������������������ MySql����������� ������������������ 설치법����������� ������������������ 작성
2.����������� ������������������ 설치법����������� ������������������ +����������� ������������������ 대상����������� ������������������ 서버를����������� ������������������ Chef에게����������� ������������������ 전달
4.����������� ������������������ MySql이����������� ������������������ 설치된����������� ������������������ 서버로����������� ������������������ 변신
3.����������� ������������������ 설치법으로����������� ������������������ 서버����������� ������������������ 설정
36
Chef����������� ������������������ 기본����������� ������������������ 지식����������� ������������������ :����������� ������������������ Cookbook
Recipe Metadata
Template Provider
37
Chef����������� ������������������ 기본����������� ������������������ 지식����������� ������������������ :����������� ������������������ Cookbook
https://github.com/opscode-cookbooks
38
Chef����������� ������������������ 기본����������� ������������������ 지식����������� ������������������ :����������� ������������������ Cookbook
mysql/recipes/client.rb
39
Chef����������� ������������������ 기본����������� ������������������ 지식����������� ������������������ :����������� ������������������ Workstation,����������� ������������������ Server,����������� ������������������ Node
Chef����������� ������������������ Server
Workstation Node
40
Chef����������� ������������������ 기본����������� ������������������ 지식����������� ������������������ :����������� ������������������ Workstation,����������� ������������������ Server,����������� ������������������ Node
Chef����������� ������������������ Server
Workstation Node
1.����������� ������������������ MySql����������� ������������������ CookbooK업로드
3.����������� ������������������ MySqlCookbook
으로����������� ������������������ 서버����������� ������������������ 구성
2.����������� ������������������ MySql����������� ������������������ 서버����������� ������������������ 구성해!
41
Chef����������� ������������������ 기본����������� ������������������ 지식����������� ������������������ :����������� ������������������ Workstation,����������� ������������������ Server,����������� ������������������ Node
Chef����������� ������������������ Server
Workstation Node
42
Chef����������� ������������������ 기본����������� ������������������ 지식����������� ������������������ :����������� ������������������ Workstation,����������� ������������������ Server,����������� ������������������ Node
Workstation Node
Chef����������� ������������������ Solo
43
개발서버����������� ������������������ 구축����������� ������������������ 자동화����������� ������������������ 예제
+ +
44
개발서버����������� ������������������ 구축����������� ������������������ 자동화����������� ������������������ 예제
Ubuntu����������� ������������������ 64bit����������� ������������������ 12.04
MySql����������� ������������������ 설치새로운����������� ������������������ 데이터베이스����������� ������������������ 생성����������� ������������������ :����������� ������������������ KSUG
새로운����������� ������������������ 사용자����������� ������������������ 생성����������� ������������������ :����������� ������������������ KSUG
Host����������� ������������������ Machine에서����������� ������������������ Virtual����������� ������������������
Machine::MySql����������� ������������������ 접속되게����������� ������������������ 설정
45
궁금해요?
46
47
http://www.flickr.com/photos/zcuervo/402403453/
http://www.flickr.com/photos/pahudson/2217562952/
http://www.flickr.com/photos/sparkleglowplug/80286190/
http://www.flickr.com/photos/hawk59/6038847752/
http://www.scalarium.com/features/automation/
http://wiki.opscode.com/pages/viewpage.action?pageId=7274862
이미지����������� ������������������ 출처
참고자료http://h3.kthcorp.com/2012/session/index/S036
http://h3.kthcorp.com/2012/session/index/S026
http://wiki.opscode.com/display/chef/Home
http://vagrantup.com/
http://www.flickr.com/photos/wwworks/4759535950/
48