Vagrant는 가상화 환경을 관리하고 프로비저닝하는 도구
다른 운영 체제나 호스트에서 동일한 개발 환경을 실행하기 위해 사용
# .VagrantFile 생성
vagrant init
# .VagrantFile 설정에 맞춰 vm start
vagrant up [vm명]
# vm에 vagrant 사용자로 ssh 접속
vagrant ssh [vm명]
# vm 중지
vagrant halt [vm명]
# vm 상태 확인
vagrant status
# vm 재시작
vagrant reload [vm명]
# vm 삭제
vagrant destroy [vm명]
# snapshot 생성
vagrant snapshot save [vm명] [snapshot명]
# snapshot 목록
vagrant snapshot list
# snapshot 적용
vagrant snapshot restore [vm명] [snapshot명]
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "generic/rocky9"
################################################################################
config.vm.define "iscsi1" do |config|
config.vm.provider "virtualbox" do |vb|
vb.memory = "1024"
vb.cpus = "1"
vb.customize ["modifyvm", :id, "--nic3", "natnetwork", "--nat-network3", "NatNetwork"]
if !File.exist?("disk01.vdi")
vb.customize ['createhd', '--filename', "disk01.vdi", '--size', 20480]
end
vb.customize ['storageattach', :id, '--storagectl', 'SATA Controller', '--port', 1, '--device', 0, '--type', 'hdd', '--medium', "disk01.vdi"]
end
end
config.vm.define "nfs" do |config|
config.vm.provider "virtualbox" do |vb|
vb.memory = "1024"
vb.cpus = "1"
vb.customize ["modifyvm", :id, "--nic3", "natnetwork", "--nat-network3", "NatNetwork"]
end
end
(1..2).each do |i|
config.vm.define "database#{i}" do |config|
config.vm.provider "virtualbox" do |vb|
vb.memory = "1024"
vb.cpus = "1"
vb.customize ["modifyvm", :id, "--nic3", "natnetwork", "--nat-network3", "NatNetwork"]
end
end
end
(1..2).each do |i|
config.vm.define "webserver#{i}" do |config|
config.vm.provider "virtualbox" do |vb|
vb.memory = "1024"
vb.cpus = "1"
vb.customize ["modifyvm", :id, "--nic3", "natnetwork", "--nat-network3", "NatNetwork"]
end
end
end
config.vm.define "db_lb" do |config|
config.vm.provider "virtualbox" do |vb|
vb.memory = "1024"
vb.cpus = "1"
vb.customize ["modifyvm", :id, "--nic3", "natnetwork", "--nat-network3", "NatNetwork"]
end
end
config.vm.define "ws_lb" do |config|
config.vm.provider "virtualbox" do |vb|
vb.memory = "1024"
vb.cpus = "1"
vb.customize ["modifyvm", :id, "--nic3", "natnetwork", "--nat-network3", "NatNetwork"]
end
config.vm.network "private_network", ip: "192.168.10.110", nic_type: "virtio"
end
config.vm.define "dns" do |config|
config.vm.provider "virtualbox" do |vb|
vb.memory = "1024"
vb.cpus = "1"
vb.customize ["modifyvm", :id, "--nic2", "natnetwork", "--nat-network2", "NatNetwork"]
end
config.vm.network "private_network", ip: "192.168.10.200", nic_type: "virtio"
end
config.vm.provision "shell", inline: <<-SHELL
sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
systemctl reload sshd
SHELL
end
# 먼저 up 명령어를 통해 부팅 후 ssh 접속을 시도
vagrant up database1
vagrant ssh database1
VM 부팅
SSH 접속하면 vagrant 라는 유저로 접속하며
sudo -i라는 명령어로 password 없이 변경 가능
각각의 vm을 생성 완료
iSCSI를 위한 vm에는 disk mount
vagrant 설정에 맞춰 ip 할당 완료