Vagrant를 알기 전까지.. 로컬에 리눅스 가상환경 구축을 위해서 했던 짓은
VirtualBox 설치 + OS iso 파일 구하기 + 기타 네트워크 설정 + 삼바 설정 + 엄청난 시간 + ... 등등 이었다.
하지만, Vagrant를 알고 나서는..
VirtualBox 설치 + Vagrant 설치 + 간단한 명령어 + 네트워크 및 공유폴더 설정 + 짧은 시간 으로 가능하게 되었다.
CentOS 가상환경을 Vagrant를 이용하여 구축해보자.
1. VirtualBox와 Vagrant를 설치한다. (모두 기본설정으로 깔아도 상관없음)
2. Vagrant 세팅
http://www.vagrantbox.es/ 에서 이미지 파일들을 제공을 하고 있는데, 이걸 그냥 vagrant에 add만 시켜주면 된다.
지금 다니는 회사에서 가장 많이 사용하는 CentOS 6.5버전을 깔아보도록 하자.
위 사이트에 들어가보면, 아래 명령어 사용법도 친절하게 나와있음.
$ vagrant box add centOS6.5 https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box
$ vagrant init centOS6.5
$ vagrant up
CentOS 가상환경 구축이 완료되었다
3. 이제 네트워크 설정을 해보자.
vagrant init을 하면, 현재 경로에 VagrantFile이라는 파일이 생기는데, 이것을 열어주고 아래와 같은 부분을 수정하여, 사설 IP를 하나 할당받도록 하자. 주석만 풀면 될 것임.
config.vm.network "private_network", ip: "192.168.33.10"
공인 아이피 설정은 config.vm.network "public_network" 부분을 이용하면 되는데, 공짜로 해주는 것 같진 않고..
별도 DNS서버 같은게 필요할 것 같아서 시도해보지 않았음.
4. 공유폴더 설정을 해보자.
config.vm.synced_folder "D:/data", "/home/vagrant/data" // 내 컴퓨터의 D:/data경로를 가상 환경의 /home/vagrant/data와 동기화 시킨다.
심볼릭 링크처럼 동작을 하는데, 삼바보다 훨씬 편리한 듯..
5. 포트포워딩 설정을 해보자.
가상환경에서 구동중인 예를 들면, httpd가 80포트로 동작을 하고 있는데,
사내에 다른 사람들은 내 가상환경에 공인 아이피 설정이 되어 있지 않는한, 접근을 할 수 있는 기회조차 얻지 못하게 되는게 보통이다.
그래서, Vagrant는 내 컴퓨터 IP의 포트를 통해 가상환경 포트로 접근이 가능하도록 포트포워딩 설정을 제공을 한다.
config.vm.network "forwarded_port", guest: 80, host: 8180 // 가상환경의 80포트를 내 컴퓨터의 8180포트로 들어갈 수 있도록 포워딩
참고로 여러개 설정 가능.
빌드 환경이 Linux 환경이거나, 공용으로 사용하는 Linux머신이 거지같이 느리다면...
Vagrant를 이용해서 가상환경을 구축해서 사용하는 것을 추천합니다.
Docker 공부하려고 Vagrant부터 알아보고 있는데, Docker보다 이게 더 대박인듯...
※ 머신 부팅 시 계속적으로 timeout이 지속된다면, cmos 셋업의 cpu 가상화 지원 활성화 옵션을 켜면 해결이 되는 경우가 있다.