Vagrant : 가상머신을 간단히 만들고, 부수고 할 수 있는 VirtualBox의 프론트 엔드툴.
Chef Solo로 만든 레시피를 실험해보기엔 최적이다.
공식 사이트
http://www.vagrantup.com/
문서
- 당연한 말이지만, 문서에 읽어볼 만한게 많다. 기본적인건 아래의 글을 참고하고, 좀 더 추가적인 기능들은 문서를 참고하길!
http://docs.vagrantup.com/v2/
Vagrant 도입하기
http://downloads.vagrantup.com/ 에서 다운 받을 수 있는데, 나는
http://downloads.vagrantup.com/tags/v1.2.7 에서 Mac용 dmg파일을 받아서 설치했다. 설치는 매우 쉬우니 생략.
가상서버 올리기
서버 올리는거는 커맨드라인에서 vagrant명령어를 실행하는 걸로 됨. 처음에는 Vagrant Box라는 OS 이미지를 다운로드 해야함.
http://www.vagrantbox.es 에 Vagrant용 OS이미지가 종류별로 공개되어 있음.
vagrant box add {title} {url}
요거 실행하면, ~/.vagrant.d/boxes라는 디렉토리아래에 {title}이라는 디렉토리가 생기고,
그 아래에 virtualbox라는 폴더 아래에 버추얼 머신 관련 파일이 다 들어 있음.
을 실행하는 것으로 가능.
적당한 디렉토리를 만들고 거기에 들어간다음
$ vagrant init {title}
을 실행하면 해당 디렉토리 내에 Vagrantfile이라는 ruby로 된 설정파일이 만들어진다.
그리고 나서 기동
$ vagrant up
실제로 내가 테스트해본 커맨드는 아래와 같다.
$ vagrant box add ubuntu http://dl.dropbox.com/u/1537815/precise64.box
(실행후 이미지 다운받느라 시간 좀 걸림)
$ mkdir virtualEnv
$ cd virtualEnv
$ vagrant init ubuntu
$ vagrant up
ssh로 로그인 하려면(1)
$ vagrant ssh
와 같은 명령어를 실행해 주면 된다.
vagrant ssh말고 ssh 커맨드로 가상머신에 들어가고 싶을 때에는 Vagrantfile의 네트워크 설정을 조금 수정해야한다.
아래와 같은 코드가 주석 처리 되어 있는데, 주석을 풀어주면 된다.
config.vm.network :private_network, ip: "192.168.33.10"
그러면 ssh로도 들어갈 수는 있지만, 암호를 물어보는데, 이렇게 말고 Vagrant의 비밀키를 디폴트로 사용하게끔 설정 가능하다.
ssh로 로그인 하려면(2)
$ vagrant ssh-config --host [호스트 명]
이렇게 하면, 가상머신 서버에 관한 ssh설정이 나오는데,
$ vagrant ssh-config --host [호스트 명] >> ~/.ssh/config
이렇게 해두면
$ ssh [호스트 명]
으로 접속 가능하다.
※ ssh 커맨드는 knife-solo같은 툴에서 기본적으로 사용하니 ssh로 로그인 할 수 있게 해두는게 좋다.
정지 / 부수기
$ vagrant halt #정지
$ vagrant destory #부수기
일단 이렇게 해서 한번 설정을 해두면, 2번째 부터는 VagrantFile이 있는 디렉토리에 들어가서 vagrant up만 해주면 된다.
다른 가상 머신을 만들어 보려면
- 임의로 폴더를 만들고
vagrant init
를 실행하고- Vagrantfile의 네트워크 설정을 변경해주고
vagrant up
vagrant ssh-config --host [별칭] >> ~/.ssh/config
로 ssh설정해주기vagrant ssh
나ssh [별칭]
으로 게스트OS에 접속 가능.
$ mkdir sandbox
$ cd sandbox
$ vagrant init
$ vi Vagrantfile #네트워크 쪽 설정 수정하기.
$ vagrant up
$ vagrant ssh-config --host box >> ~/.ssh/config