Vagrant와 chef로 개발서버 구축 자동화하기

24,465 views

Published on

제10회 개발자를 위한 ‘共感(공감)’ 세미나 - Session 5 Vagrant와 Chef로 개발서버 구축 자동화하기의 장표입니다.

규모가 있는 자바 웹 프로젝트는 대부분 개발, 테스트, 이관, 운영 등 n개의 서버로 배포/관리가 된다.
테스트, 이관, 운영과 같은 서버는 별도의 서버가 마련되어 구축되지만 개발서버는 일반적으로 개발자 자신의 PC에 구축해서 진행하는 경우가 많다. 이러다보니 개발자별로 조금씩 미묘하게 다른 서버 환경이 자신의 PC에서는 잘 되는 기능이 다른 서버에 배포되면 구동되지 않는 경우도 많고, 프로젝트에 참여하는 개발자들이 개발서버를 구축하기 위해서 들이는 비용도 만만치 많이 들어간다.

Vagrant와 Chef라는 도구를 사용하면 개발자들이 자신의 PC에 개발서버를 구축하고 관리하는데 들어가는 비용을 획기적으로 줄일 수 있다.

예제에 보여준 동영상 : http://youtu.be/W28iX5WFRXU
예제에 사용된 소스 : https://gist.github.com/4366784

Published in: Software
0 Comments
176 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
24,465
On SlideShare
0
From Embeds
0
Number of Embeds
221
Actions
Shares
0
Downloads
424
Comments
0
Likes
176
Embeds 0
No embeds

No notes for slide

Vagrant와 chef로 개발서버 구축 자동화하기

  1. 1. Vagrant와
  2. 2.  Chef로
  3. 3.   개발서버
  4. 4.  구축 자동화하기 1
  5. 5. 반갑습니다.박용권SK
  6. 6.  planet
  7. 7.  /
  8. 8.  Platform
  9. 9.  Software
  10. 10.  개발팀-
  11. 11.  한국
  12. 12.  스프링
  13. 13.  사용자
  14. 14.  그룹(KSUG)-
  15. 15.  봄싹(SpringSprout)-
  16. 16.  라
  17. 17.  스칼라
  18. 18.  코딩단(La
  19. 19.  Scala
  20. 20.  Coding
  21. 21.  Dan)-
  22. 22.  ... 2
  23. 23. 가상화
  24. 24.  그리고
  25. 25.  Vagrant!이야깃거리 설정
  26. 26.  자동화를
  27. 27.  위한
  28. 28.  Chef! 개발서버
  29. 29.  구축
  30. 30.  자동화
  31. 31.  예제! 3
  32. 32. Server 4
  33. 33. 서버
  34. 34.  :
  35. 35.  개발
  36. 36.  /
  37. 37.  테스트
  38. 38.  /
  39. 39.  이관
  40. 40.  /
  41. 41.  운영 개발 개발자 테스트 품질관리자 이관 시스템관리자 운영 5
  42. 42. 서버
  43. 43.  :
  44. 44.  개발
  45. 45.  /
  46. 46.  테스트
  47. 47.  /
  48. 48.  이관
  49. 49.  /
  50. 50.  운영 개발 개발자 테스트 품질관리자 이관 시스템관리자 운영 6
  51. 51. 개발자
  52. 52.  PC
  53. 53.  ==
  54. 54.  개발서버 개발자 7
  55. 55. 개발자
  56. 56.  PC
  57. 57.  ==
  58. 58.  개발서버 개발자 8
  59. 59. 개발자
  60. 60.  PC
  61. 61.  ==
  62. 62.  개발서버 개발자 9
  63. 63. 개발자
  64. 64.  PC
  65. 65.  ==
  66. 66.  개발서버 개발자 10
  67. 67. 난.장.판. 11
  68. 68. H3
  69. 69.  컨퍼런스에서
  70. 70.  해결책을
  71. 71.  찾다! 12
  72. 72. 가상화
  73. 73.  그리고
  74. 74.  Vagrant! + 13
  75. 75. 가상화는
  76. 76.  이미
  77. 77.  사용하고
  78. 78.  있었지만... 14
  79. 79. 가상화는
  80. 80.  이미
  81. 81.  사용하고
  82. 82.  있었지만... 14
  83. 83. 가상화는
  84. 84.  이미
  85. 85.  사용하고
  86. 86.  있었지만... 14
  87. 87. 가상화는
  88. 88.  이미
  89. 89.  사용하고
  90. 90.  있었지만... 14
  91. 91. 가상화는
  92. 92.  이미
  93. 93.  사용하고
  94. 94.  있었지만... 14
  95. 95. 가상화는
  96. 96.  이미
  97. 97.  사용하고
  98. 98.  있었지만... 14
  99. 99. 가상화는
  100. 100.  이미
  101. 101.  사용하고
  102. 102.  있었지만... 14
  103. 103. 가상화는
  104. 104.  이미
  105. 105.  사용하고
  106. 106.  있었지만... 15
  107. 107. Vagrant를
  108. 108.  소개합니다. 가상머신
  109. 109.  관리
  110. 110.  도구 @mitchellh 오픈소스
  111. 111.  MIT
  112. 112.  라이센스 Ruby
  113. 113.  기반
  114. 114.  설정 v1.0.5 16
  115. 115. Vagrant
  116. 116.  :
  117. 117.  Quick
  118. 118.  Start
  119. 119.  -
  120. 120.  1/3 1.
  121. 121.  VirtualBox
  122. 122.  설치 17
  123. 123. Vagrant
  124. 124.  :
  125. 125.  Quick
  126. 126.  Start
  127. 127.  -
  128. 128.  2/3 2.
  129. 129.  Vagrant
  130. 130.  설치 18
  131. 131. Vagrant
  132. 132.  :
  133. 133.  Quick
  134. 134.  Start
  135. 135.  -
  136. 136.  3/3 3.
  137. 137.  Ubuntu
  138. 138.  10.04
  139. 139.  가상머신
  140. 140.  설치
  141. 141.  및
  142. 142.  구동 $
  143. 143.  vagrant
  144. 144.  box
  145. 145.  add
  146. 146.  base
  147. 147.  
  148. 148.  
  149. 149.  
  150. 150.  http://files.vagrantup.com/lucid32.box [vagrant]
  151. 151.  Downloading
  152. 152.  with
  153. 153.  Vagrant::Downloaders::HTTP... [vagrant]
  154. 154.  Downloading
  155. 155.  box:
  156. 156.  http://files.vagrantup.com/lucid32.box $
  157. 157.  vagrant
  158. 158.  init A
  159. 159.  `Vagrantfile`
  160. 160.  has
  161. 161.  been
  162. 162.  placed
  163. 163.  in
  164. 164.  this
  165. 165.  directory.
  166. 166.  You
  167. 167.  are
  168. 168.  now
  169. 169.  ready
  170. 170.  to
  171. 171.   `vagrant
  172. 172.  up`
  173. 173.  your
  174. 174.  first
  175. 175.  virtual
  176. 176.  environment!
  177. 177.  Please
  178. 178.  read
  179. 179.  the
  180. 180.  comments
  181. 181.  in
  182. 182.  the
  183. 183.   Vagrantfile
  184. 184.  as
  185. 185.  well
  186. 186.  as
  187. 187.  documentation
  188. 188.  on
  189. 189.  `vagrantup.com`
  190. 190.  for
  191. 191.  more
  192. 192.   information
  193. 193.  on
  194. 194.  using
  195. 195.  Vagrant. $
  196. 196.  vagrant
  197. 197.  up [default]
  198. 198.  Importing
  199. 199.  base
  200. 200.  box
  201. 201.  base... 19
  202. 202. Vagrant
  203. 203.  기본지식
  204. 204.  :
  205. 205.  Command
  206. 206.  Line
  207. 207.  Interface $
  208. 208.  vagrant Usage:
  209. 209.  vagrant
  210. 210.  [-v]
  211. 211.  [-h]
  212. 212.  command
  213. 213.  [args]
  214. 214.  
  215. 215.  
  216. 216.  
  217. 217.  -v,
  218. 218.  --version
  219. 219.  
  220. 220.  
  221. 221.  
  222. 222.  
  223. 223.  
  224. 224.  
  225. 225.  
  226. 226.  
  227. 227.  
  228. 228.  
  229. 229.  
  230. 230.  
  231. 231.  
  232. 232.  
  233. 233.  
  234. 234.  
  235. 235.  
  236. 236.  
  237. 237.  
  238. 238.  Print
  239. 239.  the
  240. 240.  version
  241. 241.  and
  242. 242.  exit.
  243. 243.  
  244. 244.  
  245. 245.  
  246. 246.  -h,
  247. 247.  --help
  248. 248.  
  249. 249.  
  250. 250.  
  251. 251.  
  252. 252.  
  253. 253.  
  254. 254.  
  255. 255.  
  256. 256.  
  257. 257.  
  258. 258.  
  259. 259.  
  260. 260.  
  261. 261.  
  262. 262.  
  263. 263.  
  264. 264.  
  265. 265.  
  266. 266.  
  267. 267.  
  268. 268.  
  269. 269.  
  270. 270.  Print
  271. 271.  this
  272. 272.  help. Available
  273. 273.  subcommands: Command
  274. 274.  
  275. 275.  
  276. 276.  
  277. 277.  
  278. 278.  box
  279. 279.  
  280. 280.  
  281. 281.  
  282. 282.  
  283. 283.  destroy
  284. 284.  
  285. 285.  
  286. 286.  
  287. 287.  
  288. 288.  gem
  289. 289.  
  290. 290.  
  291. 291.  
  292. 292.  
  293. 293.  halt Line
  294. 294.  
  295. 295.  
  296. 296.  
  297. 297.  
  298. 298.  init
  299. 299.  
  300. 300.  
  301. 301.  
  302. 302.  
  303. 303.  package
  304. 304.  
  305. 305.  
  306. 306.  
  307. 307.  
  308. 308.  provision
  309. 309.  
  310. 310.  
  311. 311.  
  312. 312.  
  313. 313.  reload Interface
  314. 314.  
  315. 315.  
  316. 316.  
  317. 317.  
  318. 318.  resume
  319. 319.  
  320. 320.  
  321. 321.  
  322. 322.  
  323. 323.  ssh
  324. 324.  
  325. 325.  
  326. 326.  
  327. 327.  
  328. 328.  ssh-config
  329. 329.  
  330. 330.  
  331. 331.  
  332. 332.  
  333. 333.  status
  334. 334.  
  335. 335.  
  336. 336.  
  337. 337.  
  338. 338.  suspend
  339. 339.  
  340. 340.  
  341. 341.  
  342. 342.  
  343. 343.  up For
  344. 344.  help
  345. 345.  on
  346. 346.  any
  347. 347.  individual
  348. 348.  command
  349. 349.  run
  350. 350.  `vagrant
  351. 351.  COMMAND
  352. 352.  -h` 20
  353. 353. Vagrant
  354. 354.  기본지식
  355. 355.  :
  356. 356.  Box Box
  357. 357.  :
  358. 358.  기본
  359. 359.  설정
  360. 360.  및
  361. 361.  OS가
  362. 362.  설치된
  363. 363.  VM
  364. 364.  템플릿
  365. 365.  이미지 메모리 네트워크 파일시스템 운영체제 공유폴더 SSH ... 21
  366. 366. Vagrant
  367. 367.  기본지식
  368. 368.  :
  369. 369.  Box $
  370. 370.  vagrant
  371. 371.  box
  372. 372.  add
  373. 373.  ubuntu32
  374. 374.  
  375. 375.  
  376. 376.  
  377. 377.  http://boxes.com/ubuntu32.box $
  378. 378.  vagrant
  379. 379.  box
  380. 380.  add
  381. 381.  win2k
  382. 382.  
  383. 383.  
  384. 384.  
  385. 385.  http://boxes.com/win2k.box Box
  386. 386.  저장소 $
  387. 387.  vagrant
  388. 388.  box
  389. 389.  add
  390. 390.  centos51
  391. 391.  
  392. 392.  
  393. 393.  
  394. 394.  http://boxes.com/centos51.box 22
  395. 395. Vagrant
  396. 396.  기본지식
  397. 397.  :
  398. 398.  Box 제공되는
  399. 399.  Box:
  400. 400.  http://www.vagrantbox.es/ 23
  401. 401. Vagrant
  402. 402.  기본지식
  403. 403.  :
  404. 404.  Vagrantfile Ruby
  405. 405.  기반에
  406. 406.  Vagrant
  407. 407.  프로젝트
  408. 408.  설정
  409. 409.  파일 # -*- 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
  410. 410. Vagrant
  411. 411.  :
  412. 412.  개발환경
  413. 413.  구성하기
  414. 414.  -
  415. 415.  1/3 Box
  416. 416.  저장소 $
  417. 417.  vagrant
  418. 418.  package
  419. 419.  dev.box $
  420. 420.  scp
  421. 421.  dev.box
  422. 422.  box@boxes.com:... 형상관리
  423. 423.  저장소 $
  424. 424.  cat
  425. 425.  
  426. 426.  Vagrantfile
  427. 427.  
  428. 428.  
  429. 429.  .... $
  430. 430.  svn
  431. 431.  add
  432. 432.  Vagrantfile $
  433. 433.  svn
  434. 434.  commit
  435. 435.  -m
  436. 436.  “개발서버
  437. 437.  구성” 25
  438. 438. Vagrant
  439. 439.  :
  440. 440.  개발환경
  441. 441.  구성하기
  442. 442.  -
  443. 443.  2/3 Box
  444. 444.  저장소 $
  445. 445.  vagrant
  446. 446.  package
  447. 447.  dev.box $
  448. 448.  scp
  449. 449.  dev.box
  450. 450.  box@boxes.com:... 형상관리
  451. 451.  저장소 $
  452. 452.  cat
  453. 453.  
  454. 454.  Vagrantfile
  455. 455.  
  456. 456.  
  457. 457.  .... $
  458. 458.  svn
  459. 459.  add
  460. 460.  Vagrantfile $
  461. 461.  svn
  462. 462.  commit
  463. 463.  -m
  464. 464.  “개발서버
  465. 465.  구성” 26
  466. 466. Vagrant
  467. 467.  :
  468. 468.  개발환경
  469. 469.  구성하기
  470. 470.  -
  471. 471.  3/3 Box
  472. 472.  저장소 $
  473. 473.  svn
  474. 474.  checkout
  475. 475.  svn://... $
  476. 476.  vagrant
  477. 477.  up 형상관리
  478. 478.  저장소 $
  479. 479.  svn
  480. 480.  checkout
  481. 481.  svn://... $
  482. 482.  vagrant
  483. 483.  up 27
  484. 484. Vagrant
  485. 485.  :
  486. 486.  해결되지
  487. 487.  않은
  488. 488.  문제점... 이미...
  489. 489.  
  490. 490.  
  491. 491.  Box는...
  492. 492.  
  493. 493.  
  494. 494.  
  495. 495.  
  496. 496.  배포되었다!? 28
  497. 497. Provisioning 프로비저닝(Provisioning) 29
  498. 498. Provisioning Configuration
  499. 499.  /
  500. 500.  System
  501. 501.  Management
  502. 502.  Tools Shell 30
  503. 503. Provisioning Configuration
  504. 504.  /
  505. 505.  System
  506. 506.  Management
  507. 507.  Tools Shell 31
  508. 508. Provisioning Configuration
  509. 509.  /
  510. 510.  System
  511. 511.  Management
  512. 512.  Tools Shell 32
  513. 513. Chef를
  514. 514.  소개합니다. 오픈
  515. 515.  소스
  516. 516.  시스템
  517. 517.  관리
  518. 518.  프레임워크 OPSCODE(www.opscode.com) 2009년
  519. 519.  1월에
  520. 520.  정식
  521. 521.  발표 루비
  522. 522.  기반
  523. 523.  DSL(Domain
  524. 524.  Specific
  525. 525.  Language) 풍부한
  526. 526.  기반
  527. 527.  설정
  528. 528.  파일
  529. 529.  제공 (github.com/opscode/cookbooks) 33
  530. 530. Chef
  531. 531.  :
  532. 532.  뭘
  533. 533.  할
  534. 534.  수
  535. 535.  있나요? 34
  536. 536. Chef
  537. 537.  :
  538. 538.  뭘
  539. 539.  할
  540. 540.  수
  541. 541.  있나요? ! ! ! 잡 해 복 35
  542. 542. Chef
  543. 543.  :
  544. 544.  뭘
  545. 545.  할
  546. 546.  수
  547. 547.  있나요? 2.
  548. 548.  설치법
  549. 549.  +
  550. 550.  대상
  551. 551.  서버를
  552. 552.  Chef에게
  553. 553.  전달 1.
  554. 554.  MySql
  555. 555.  설치법
  556. 556.  작성 3.
  557. 557.  설치법으로
  558. 558.  서버
  559. 559.  설정 4.
  560. 560.  MySql이
  561. 561.  설치된
  562. 562.  서버로
  563. 563.  변신 36
  564. 564. Chef
  565. 565.  기본
  566. 566.  지식
  567. 567.  :
  568. 568.  Cookbook Recipe Metadata Template Provider 37
  569. 569. Chef
  570. 570.  기본
  571. 571.  지식
  572. 572.  :
  573. 573.  Cookbook https://github.com/opscode-cookbooks 38
  574. 574. Chef
  575. 575.  기본
  576. 576.  지식
  577. 577.  :
  578. 578.  Cookbook mysql/recipes/client.rb 39
  579. 579. Chef
  580. 580.  기본
  581. 581.  지식
  582. 582.  :
  583. 583.  Workstation,
  584. 584.  Server,
  585. 585.  Node Chef
  586. 586.  Server Workstation Node 40
  587. 587. Chef
  588. 588.  기본
  589. 589.  지식
  590. 590.  :
  591. 591.  Workstation,
  592. 592.  Server,
  593. 593.  Node Chef
  594. 594.  Server 1.
  595. 595.  MySql
  596. 596.   3.
  597. 597.  MySql CookbooK Cookbook 업로드 으로
  598. 598.  서버
  599. 599.  구성 2.
  600. 600.  MySql
  601. 601.  서버
  602. 602.  구성해! Workstation Node 41
  603. 603. Chef
  604. 604.  기본
  605. 605.  지식
  606. 606.  :
  607. 607.  Workstation,
  608. 608.  Server,
  609. 609.  Node Chef
  610. 610.  Server Workstation Node 42
  611. 611. Chef
  612. 612.  기본
  613. 613.  지식
  614. 614.  :
  615. 615.  Workstation,
  616. 616.  Server,
  617. 617.  Node Chef
  618. 618.  Solo Workstation Node 43
  619. 619. 개발서버
  620. 620.  구축
  621. 621.  자동화
  622. 622.  예제 + + 44
  623. 623. 개발서버
  624. 624.  구축
  625. 625.  자동화
  626. 626.  예제 Ubuntu
  627. 627.  64bit
  628. 628.  12.04 MySql
  629. 629.  설치 새로운
  630. 630.  데이터베이스
  631. 631.  생성
  632. 632.  :
  633. 633.  KSUG 새로운
  634. 634.  사용자
  635. 635.  생성
  636. 636.  :
  637. 637.  KSUG Host
  638. 638.  Machine에서
  639. 639.  Virtual
  640. 640.   Machine::MySql
  641. 641.  접속되게
  642. 642.  설정 45
  643. 643. 궁금해요? 46
  644. 644. 47
  645. 645. 참고자료 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/이미지
  646. 646.  출처 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://www.flickr.com/photos/wwworks/4759535950/ 48

×