# Vagrant를 이용하여 가상 머신 환경 구성하기 1 - 기본
개인적으로 Vagrant 의 가장 큰 장점은 단순한 워크플로우와 자동화로 인한 환경 구축에 들어가는 개발 비용의 단축인데, 예시로 아래와 같은 상황을 생각해보자.
Ex) VirtualBox에서 서버 3대를 기동한다고 가정해보자. 일반적으로 다음과 같은 수순으로 진행될 것이다.
1. ISO 파일 준비
2. 가상 서버1 새로 만들기
3. CPU, MEMORY 등의 시스템 설정 정보 셋팅
4. 가상 서버2 새로 만들기
5. CPU, MEMORY 등의 시스템 설정 정보 셋팅
6. 가상 서버3 새로 만들기
7. CPU, MEMORY 등의 시스템 설정 정보 셋팅
8. 가상 서버1,2,3 기동
...
여기까지만하는게 아니고 각 서버의 호스트명, 아이피 설정 등 세부 설정을 하기 위해서는 각 서버에 접속하여 하나하나 다 설정을 해줘야한다. 여간 귀찮은 작업이 아니다.(물론 가상 서버1 하나를 만들고 셋팅까지 끝낸 다음 clone을 뜨면 더 빠르겠지만 clone된 서버에서도 기본적인 IP부터 설정은 해줘야한다.)
이를 Vagrant로 수행한다면 아래와 같다.
1. Vagrantfile 작성
2. Vagrant 기동
Vagrant file 내에 기동할 서버 목록, 세부 설정 등을 스크립트로 다 작성해놓기 때문에 이렇게 간단한 작업만으로도 필요한 환경 구축을 끝낼 수 있다.
Step 1. VagrantFile 작성
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Cluster는 생성할 가상 서버 목록
cluster = {
"master01" => { :ip => "dhcp", :cpus => 2, :mem => 1024 },
"master02" => { :ip => "dhcp", :cpus => 2, :mem => 1024 },
"master03" => { :ip => "dhcp", :cpus => 2, :mem => 1024 },
"worker01" => { :ip => "dhcp", :cpus => 1, :mem => 1024 },
"worker02" => { :ip => "dhcp", :cpus => 1, :mem => 1024 },
"worker03" => { :ip => "dhcp", :cpus => 1, :mem => 1024 }
}
# 가상 서버의 세부 설정
Vagrant.configure("2") do |config|
cluster.each_with_index do |(hostname, info), index|
config.vm.define hostname do |cfg|
cfg.vm.provider :virtualbox do |vb, override|
# 사용할 가상머신 이미지 파일
config.vm.box = "dodybayu/centos7docker"
config.vm.synced_folder '.', '/vagrant', disabled: true
# override.vm.network :private_network, ip: "#{info[:ip]}"
override.vm.network "public_network"
override.vm.hostname = hostname
vb.name = hostname
vb.customize ["modifyvm", :id, "--memory", info[:mem], "--cpus", info[:cpus], "--hwvirtex", "on"]
end # end provider
end # end config
end # end cluster
end
vagrant의 또 하나의 장점은 vagrant cloud 로부터 미리 작성된 가상 머신 이미지를 쉽게 사용할 수 있다는 것이다.
마치 Docker hub에서 사용할 컨테이너 이미지를 가져다가 쓰듯이 말이다.
Step 2. Vagrant 기동
$ vagrant up
Step 3. Vagrant 기동 확인
$ vagrant ssh-config
Step 4. 가상 머신 접속
$ vagrant ssh "<호스트명>"
'OpenSource > Vagrant' 카테고리의 다른 글
# Vagrant를 이용하여 가상 머신 환경 구성하기 1 - 기본 (0) | 2020.10.06 |
---|