Vagrant는 쉬운 개발환경의 구성을 도와주는 오픈소스로서 팀내의 개발환경을 동일하게 유지해야 할 경우 유용하게 사용할 수 있습니다. 



오늘 새 노트북에 개발환경을 구축하기 위해서 Vagrant를 이용하여 설치할 일이 있었기에 진행 과정을 남겨두려고 합니다.

개발환경은  CentOS 6.4 + Apache 2.2.15 + MySQL 14.14 + PHP 5.3.3 + Tomcat 6-6.0.36 로 구성되었습니다.


1) 필수 환경 구성

먼저 자신의 환경에 맞는 아래의 프로그램을 각각 설치합니다.

- VirtualBox : https://www.virtualbox.org/

- Vagrant : http://downloads.vagrantup.com/


2) 가상이미지(box) 설치

- 저는 손에 익숙한 centos 64bit 를 설치하기로 했습니다.

- 다른 이미지를 사용하고 싶은 경우 http://www.vagrantbox.es/ 참고하세요


우선 box 설치

// 형식 : vagrant box add [title] [download-url] 

$ vagrant box add centos64 http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130427.box


box 초기화

$ vagrant init centos64


초기화 하고 나면 Vagrantfile 이라는 환경설정 파일이 생깁니다.(제 경우는 C:\Users\Administrator 안에 있네요.)

어디있는지 모를때는 링크를 참고하세요. http://docs.vagrantup.com/v2/vagrantfile/index.html


box 구동하기

$ vagrant up


box 재구동

$ vagrant reload


box 종료

$ vagrant halt


그리고 예상하시는 것처럼 vagrant help 명령으로 더 많은 내용을 확인할 수 있습니다.


vagrant up 명령으로 구동을 마치면 ssh 클라이언트로 접속해서 사용할 수 있습니다. 

ssh 호스트는 localhost 포트는 2222

id : vagrant/ pw : vagrant


3) apache, tomcat, mysql, php 환경구성


- httpd 설치

$ yum install httpd httpd-devel


- php 설치

$ yum install php


- mysql 설치

$ yum install mysql-server mysql


- php mysql 연동

$ yum install php-mysql


- java 설치

$ yum install java-1.6.0-openjdk.x86_64


- tomcat6 설치

wget http://jpackage.org/jpackage50.repo -O /etc/yum.repos.d/jpackage50.repo

$ yum install tomcat6 tomcat6-admin-webapps tomcat6-webapps


설치후 JAVA_HOME 설정

vi /usr/share/tomcat6/conf/tomcat6.conf

JAVA_HOME="/usr/java/jdk1.6.0_45" (각자의 환경에 맞는 JAVA_HOME을 설정해야 합니다.)


4) Vagrantfile 환경설정

- Vagrantfile 에서 apache, tomcat, mysql 포트 포워딩 설정을 아래처럼 변경해 줍니다.


  # guest : vm 머신의 포트 / host : local 포트

  # 아래와 같이 설정하면 localhost 33306 으로 접속할때 vm 머신 3306으로 접속된다.

  config.vm.network :forwarded_port, guest: 3306, host: 33306


  # httpd

  config.vm.network :forwarded_port, guest: 80, host: 8000


  # tomcat6

  config.vm.network :forwarded_port, guest: 8080, host: 9999


설정을 마쳤으면 재 구동합니다.





5) 설치확인

- 테스트 파일을 만들어서 확인해 줍니다.

vi /var/www/html/info.php 

<?php phpinfo(); ?>


http://localhost:8000/info.php

http://localhost:9999/


기타) box와 운영OS의 파일공유

- 설치 후 가상이미지 상의 /vagrant 디렉토리는 윈도우(내 경우)의  C:\Users\Administrator 폴더와 연결되어 있으니 개발 PC와 이미지의 파일공유가 필요하신 경우 사용하시면 됩니다.

- 폴더 공유 관련 설정은 다음 링크 참고. http://docs.vagrantup.com/v2/synced-folders/basic_usage.html


* 접속 문제가 있는경우 iptables 를 변경하거나 중지해 보세요.





저는 평생 한두곳의 회사만 다니고 싶어요.
그렇게 오랫동안 일할 수 있게 해주는 회사가 있다면 저는 그 회사를 위해서 최선을 다해서 일할 것 입니다.
그런데 그런회사는 어떤 회사일까요?
우선 저는 근무 시간중에 일정 시간동안 자기가 원하는 일을 하도록 해주는 구글이 마음에 들어요. 직장 내에서 혁신을 조장하는 정말로 멋진 방법이죠. 그러기 위해서는 분명 조건이 있어야 할 겁니다. 제가 골랐고 열정적으로 느끼는 일반적인 일 외에도 뭔가에 몰두할 수 있는 능력이 있어야 하겠죠. 원격 통신 능력이 있으면 아주 좋을 겁니다. 아무도 하루종일 흰색 벽 속에 갇혀있고 싶어하지 않을 테니까요. 그렇게 일하는 건 신체적으로나 감정적으로 너무 힘들죠. 근로 시간을 유연하게 조정해서 일하는 것도 좋겠지요. 그렇지만 제가 집에서 일항 경우 그런게 별로 의미는 없겠죠. 스톡옵션은 좋아요. 저와 제 아들까지 수혜 대상이 되는 복지 혜택도 있으면 좋구요. 출장 기회도 많고, 제가 제 분야에서 발전할 수 있는 훈련도 받을 수 있다면 금상첨화겠죠. 어디서나 데이터 연결이 가능하고, 연간 비품 비용을 청구할 수 있고, 마사지까지 받으면 더 좋구요.


그러나 그 어느 것보다 제가 일을 구할 때 가장 중시하는 건 그 일이 '도전적'인지 여부입니다. 저는 보고서나 작성하고, 육체노동이나 하고, 머리를 쓸 필요가 없는 일을 하면서 제 시간을 보내고 싶지는 않아요. 저는 직장 내에서 제가 가치를 인정받는다는 느낌을 받고 싶은데, 그런 느낌은 도전적인 일을 해결할 때 느낄 수 있죠. 예를 들어 "우리는 저 직원은 힘든 일도 잘 처리할 수 있다고 생각합니다. 재능이 있는 친구입니다."라는 말을 듣고 싶은 거죠. 그러면 저는 제능력을 증명해 보이고 싶을 것이고, 제가 그렇게 하면 저를 고용한 회사의 고용주들 에게도 좋은 일이겠죠. 그러면 모든 사람이 승리하는 거구요.  - 디지털 네이티브(돈 탭스콧 저)

좋은 품질을 원할때 팀원에게 해주어야 하는 노력들..
책에서 발췌도 했고, 제생각도 적었고, 물어보기도 했습니다. ㅎㅎ
(추가해주시면 생각해보겠습니다. )


  • 충분한 개인 개발 공간
  • 책, 파일, 노트, 코드목록, 컴퓨터장치를 동시에 놓을 수 있는 책상공간
  • 전화로 인한 방해를 멈출수 있는 수단(전화 대신 편지사용)
  • 사람으로 인한 방해를 멈출수 있는 수단
  • 원하지 않는 소음을 차단할 수 있는 수단(문이 있는 개인사무실)
  • 적절한 서가공간
  • 외부 창문이 있는 사무실
  • 넓은 화이트보드 공간
  • 넓은 게시판 공간
  • 다른 팀원에 대한 편리한 접근 수단
  • 고속 프린터
  • 자동문서 공급장치가 붙은 복사기
  • 회의실에 대한 편리한 접근수단
  • 펜, 연필, 형광펜, 종이클립, 고무줄, 스탬플, 테이프, 메모장, 노트, 3공바인더, 공디스켓  등의 사무용품
  • 적절한 온도유지
  • 청결한 환경
  • 일하기 좋은 성능의 PC
  • 업무에 구애받지 않는 SW

주의사항 : 개발자 우대에 대한 다른 조직원의 불만을 주의해야 함.


+ Recent posts