Vagrant는 가상머신을 생성하고 관리하기 쉽게 도와준다. 인프라를 코드로써 관리하기 때문에 동일한 환경의 가상 머신을 사용할 수 있다.
- Vagrantfile 작성
- 가상 머신 구축
- SSH로 가상 머신 접속
생성된 Vagrantfile의 설정 값을 필요한 환경에 맞게 수정할 수 있다. 예를 들어 가상 머신 구축 후 필요한 패키지를 설치하는 스크립트를 실행할 수 있다.
vagrant init
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "centos/7"
config.vm.hostname = "demo"
config.vm.synced_folder ".", "/home/vagrant/sync", disabled: true
config.vm.network :private_network, ip: "192.168.0.1"
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
vagrant up
vagrant halt
vagrant ssh
vagrant destroy
이미 가상 머신이 구축되고 나서 Provision을 설정한 경우에 이를 반영하기 위해서는 두 가지 방법이 있다.
- 가상 머신을 삭제하고 새로 구축
vagrant provision
명령을 통해 지정된 부분만 다시 실행