지금까지 Vagrant 공부 내용
- Vagrant 이미지 업로드 (VirtualBox)
지금 Vagrant를 이렇게 정리하면서 공부하는 이유는
Kubernetes 실습 환경 구축을 Vagrant를 이용해서 편하게 VirtualBox로 띄우고 싶어서이다.
최소한 "Master 1대 + Worker 2대 = 3대", 또는 "Master 1대 + Worker 3대 = 4대"
구성을 하고자 하는데 앞에서 알아본 Vagrantfile은 VM 1대 구성밖에 안되는 내용이었다.
그래서 이번에는 여러개의 VM을 생성하는 Vagrantfile에 대해서 알아보고자 한다.
지난 포스팅에서 작성해보았던 Vagrantfile을 살펴보면 다음과 같다.
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "whatwant/Ubuntu-20.04-Server"
config.vm.box_version = "0.1.0"
config.vm.network "public_network", ip: "192.168.100.201"
config.vm.provider "virtualbox" do |vb|
vb.gui = false
vb.cpus = "2"
vb.memory = "2048"
end
config.vm.provision "shell", inline: <<-SHELL
apt-get update
apt-get upgrade -y
SHELL
end
그러면 여러개의 VM을 정의하는 Vagrantfile은 어떻게 생겼을까?
# -*- mode: ruby -*-
# vi: set ft=ruby :
N = 2
Vagrant.configure("2") do |config|
config.vm.define "w-k8s-master" do |cfg|
cfg.vm.box = "whatwant/Ubuntu-20.04-Server"
cfg.vm.box_version = "0.2.0"
cfg.vm.hostname = "master"
cfg.vm.network "public_network", ip: "192.168.100.200"
cfg.vm.provider "virtualbox" do |vb|
vb.gui = false
vb.cpus = "2"
vb.memory = "2048"
end
cfg.vm.provision "shell", inline: <<-SHELL
apt-get update
apt-get upgrade -y
SHELL
end
(1..N).each do |i|
config.vm.define "w-k8s-worker#{i}" do |cfg|
cfg.vm.box = "whatwant/Ubuntu-20.04-Server"
cfg.vm.box_version = "0.2.0"
cfg.vm.hostname = "worker#{i}"
cfg.vm.network "public_network", ip: "192.168.100.20#{i}"
cfg.vm.provider "virtualbox" do |vb|
vb.gui = false
vb.cpus = "1"
vb.memory = "1024"
end
cfg.vm.provision "shell", inline: <<-SHELL
apt-get update
apt-get upgrade -y
SHELL
end
end
end
더 이상 설명할 것이 없을 것 같다.
위의 2개 Vagrantfile을 비교해보면서 살펴보면 될 것 같다.
`N = 2` 값을 통해 아래 순환문을 컨트롤 하고...
`#{i}` 값을 통해서 숫자를 변수처럼 할당해서 hostname이나 ip값을 지정해주었다.
별도의 디렉토리를 생성한 뒤
위와 같은 `Vagrantfile`을 작성하고
`vagrant up` 명령어로 실행하면 간단하게 VM이 3개가 생성된다.
다만, 지난 번부터 `vagrant up` 실행했을 때 오류 메시지와 함께 실패를 종종 경험하게 되어 아쉬운 점은 있다.
다시 `vagrant up`을 하면 성공하기도 하고, 여러번 실행해야 성공하기도 하고
때로는 `vagrant destroy`로 전부 삭제 뒤, 다시 `vagrant up`을 해야하기도 했다.
밑의 3개 VM이 vagrant로 생성된 아이들이다.
'Dev Tools > VirtualBox' 카테고리의 다른 글
VirtualBox Error 'drm:vmw_host_printf [vmwgfx]] *ERROR* Failed to send host log message' (0) | 2024.12.07 |
---|---|
VirtualBox 머신 복제 (0) | 2023.04.15 |
Vagrant 사용하기 - 기본 (0) | 2021.07.14 |
Vagrant 이미지 업로드 (VirtualBox) (0) | 2021.07.14 |
VirtualBox 공유 폴더 사용하기 (Ubuntu 12.04/14.04) (0) | 2014.08.17 |