-
Vagrant 사용법 - 5분만에 로컬 테스트 환경을 만들어 보자DevOps/vagrant 2019. 7. 27. 14:13
rHashiCorp Vagrant Hashicorp는 개발자들의 로컬 테스트 환경을 구성할 수 있도록 고맙게도 Vagrant 라는 솔루션을 제공해 주고 있다.
공식 사이트에 "Development Environments Made Easy" 라고 설명하고 있듯이 개발환경을 쉽게 만들어 주는 것이 목적이다. (https://www.vagrantup.com/)
Vagrant는 여러 프로바이더를 제공해 주고 있는데 보통은 가장 많이 사용하는 VirtualBox를 대상으로 구성하겠다.
이 포스트에서는 맥북을 기준으로 설명한다.
설치
Virtual Box
-
먼저 프로바이더로 버추얼박스를 사용할 것이기 때문에 버추얼박스 공식 페이지에 가서 설치를 먼저 진행한다.
Vagrant
버추얼박스의 설치가 완료되었으면 이젠 드디어 Vagrant를 설치해 보자
vagrant 의 설치는 매우 간단하다. 아래 사이트에서 각 os별 파일을 다운로드 받은 후 바로 설치하면 된다.
맥은 패키지 파일인 dmg 파일을 다운로드 받은 후 더블클릭한다.
-
다운로드 사이트 - https://www.vagrantup.com/downloads.html
맥에서 설치 후 다음과 같이 버전이 잘 나오면 정상설치된 것이다.
$ vagrant --version Vagrant 2.2.5
Vagrant의 이미지 저장소
vagrant는 마치 도커허브 처럼 이미지들을 박스(Box) 라는 이름으로 관리해 주는 공식 저장소를 제공해 주고 있다.
(HashiCorp's Vagrant Cloud box catalog)
virtualbox, vmware, libvirt, aws 등 다양한 Provider들을 제공해 주고 있다.
box마다 다운로드 수를 볼 수 있는데 개인적으로는 가장 많은 다운로드가 있는 box가 안정성이나 신뢰도가 높을 것이다.
공식 Vagrant Boxes 개발환경 구성
자 이제 vagrant가 뭔지는 대강 알았으니 바로 초고속으로 개발환경을 구성해 보자.
실행 순서를 정리하면 다음과 같다.
-
vagrant init 으로 초기 템플릿 구성
-
vagrant up 으로 실제 VM 생성
-
vagrant ssh 로 생성된 VM에 접속
여기서는 ubuntu Server 14.04 공식이미지를 설치해 본다.
$ vagrant init ubuntu/trusty64
위의 명령어를 실행하면 실행한 위치에 Vagrantfile 이라는 파일이 만들어 진다.
파일을 열어보면 ruby 스크립트이다.
쉽게 말하면 virtualbox를 통해 생성할 기본 골격이 되는 템플릿을 자동으로 만들어 준 것이다.
설정을 살펴보면 우리가 지정한 box 이름이 들어가 있다.
... config.vm.box = "ubuntu/trusty64" ...
이어서 바로 생성된 템플릿을 통해 VM을 만든다.
반드시 Vagrantfile 파일이 있는 위치에서 명령어를 실행해야 한다.
$ vagrant up
실행하게 되면 공식 저장소로부터 box이미지를 다운받고 기본 설정을 통해 Virtual Box에 VM을 생성해 주는 것을 볼 수 있다.
버추얼 박스에서도 vagrant를 통해 VM이 생성되는 것을 볼 수 있다.
Virtual Box를 통해 VM이 생성되고 있다. 생성된 VM에 접속하는 방법은 간단하다.
$ vagrant ssh
vagrant ssh 명령으로 접속한 화면 여기서 궁금한 것은 ssh 접속을 위해서는 별도의 keypair가 있어야 하는데 단지 간단한 명령으로 바로 접속이 되었다.
사용자들의 VM 접속에 대한 편의성을 더해준 부분으로 보인다.
다음 명령을 실행하면 어떤 원리로 ssh 접속을 했는지 알 수 있다.
$ vagrant ssh-config
ssh-config 명령으로 접속 설정상태를 알 수 있다. 즉, VM의 로컬 주소인 127.0.0.1로 접속하고 있고 포트는 2222번으로 접속한다. VM내부에서는 22번으로 가도록 포트포워딩이 되어 있다.
그리고 ssh private key는 초반에 vagrant init 시 Vagrantfile 이 있던 위치에 숨김폴더인 .vagrant가 생성되고 여기에 private_key 라는 이름으로 키 정보가 저정된 것을 알 수 있다.
유용한 사이트
Vagrant Cheat Sheet - vagrant의 명령어를 한눈에 볼 수 있습니다.
-