Vagrant로 Local 개발 환경을 구축해본다.
이때 Local 개발 환경의 구축 절차를 code화 함에 있어 장점은 아래와 같다.
Vagrant는 공시 사이트에서 자신의 환경에 맞게 설치한다. (Vagrant 설치 링크)
설치 링크에 접속하면 자동으로 OS를 인식한다.
설치를 완료하고 설치가 정상적으로 되었는지 확인하기 위해 터미널창에 vagrant --version 커맨드를 입력해본다.
그리고 vagrant 프로젝트를 위한 디렉토리를 생성한다. 그리고 vagrant에서 가상 머신을 구축하기 위한 기본 세트를 작성하기 위해 아래 명령어를 실행한다.
vagrant init
명령어 실행되고 나면, Vagrantfile
이 생성된다. 이 파일은 vagrant에서 가상 머신 구축에 관한 정의나 절차를 모두 담고 있다.
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "centos/7"
config.vm.hostname = "demo"
config.vm.network :private_network, ip: "192.168.33.10"
config.vm.provision "shell", inline: $script
end
$script = <<SCRIPT
yum -y install epel-release
yum -y install nginx
echo "hello, vagrant" > /usr/share/nginx/html/index.html
systemctl start nginx
SCRIPT
Vagrantfile의 내부를 살펴본다.
vagrant는 프로그래밍 언어인 ruby로 만들어졌고, Vagrantfile의 내용도 ruby 언어 문법으로 작성되어 있다.
Vagrant.configure
~ end
사이의 내용은 가상머신을 정의하는 내용이다.
Vagrant.configure("2") do |config|
config.vm.box = "centos/7"
config.vm.hostname = "demo"
config.vm.network :private_network, ip: "192.168.33.10"
config.vm.provision "shell", inline: $script
$script = <<SCRIPT
이후의 처리를 호출한다. 여기에 기술된 처리는 가상 머신 구축 후 실행된다.위에서 사용한 config.vm 이외의 설정할 수 있는 값들은 여기서 확인할 수 있다.
vagrant up
실행하면 아래와 같이 나온다.
Machine booted and ready!가 출력되는 것을 확인하고 virtualbox에서 가상 머신이 기동되었는지 확인한다.
IP 주소를 지정하지 않고 ssh 키를 별도로 마련하지 않고도 간단하게 접속이 가능하다.
vagrant ssh
Vagrantfile에 작성한 호스트 이름과 private IP를 확인해본다.
uname -n
ip addr show dev eth1
Vagrantfile에서 config.vm.provision
세팅을 통해 shell script로 nginx를 설치했는 이를 확인해본다.
nginx -v
vagrant halt
정지한 가상 머신을 다시 실행하려면 vagrant up
을 수행하고 vagrant ssh
로 접속하면 된다.
vagrant destroy
가상 머신 취소 후, 다시 가상 머신을 이용하려면 vagrant up
으로 가상 머신을 재기동한다.