Vagrant를 사용하면 여러 가상 서버의 Vagrantfile 쓰기를 유연하게 시작할 수 있습니다
Vagrant는 Vagrantfile을 정의하여 여러 대의 가상 서버를 시작하여 인프라 시설의 학습과 테스트를 진행할 수 있습니다.그때는 실행하고 싶은 내용에 따라 시작하는 가상 서버의 대수를 바꾸고 싶은 일이 있었다.그러나 Vagrant file을 하나씩 덮어쓰는 것은 번거롭습니다.
이 글은 시작하고자 하는 가상 서버의 테이블 수를 유연하게 변경할 수 있는Vagrantfile의 쓰기 방법을 설명합니다.
전제 조건
이 글의 내용은 다음 환경에서의 동작을 확인하고 있다.
Vagrantfile에서 여러 VM에 대한 쓰기 정의
다른 블로그에서 소개한 작법은 다음과 같다.
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "centos/7"
config.vm.define "host1" do |host|
host.vm.hostname = "host1"
host.vm.network "private_network", ip: "192.168.56.11"
end
config.vm.define "host2" do |host|
host.vm.hostname = "host2"
host.vm.network "private_network", ip: "192.168.56.12"
end
end
시작하고자 하는 가상 서버의 대수를 변경하려면 config.vm.difine "hostX" do
~end
의 일련의 정의를 추가하거나 삭제해야 하기 때문에 번거롭다.시작하려는 가상 서버의 테이블 수를 유연하게 변경할 수 있는 쓰기
시작할 가상 서버의 수를 환경 변수로 설정하고 일련의 정의를 순환 처리로 설정합니다.
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "centos/7"
MAX_OF_SERVERS = (ENV["MAX_OF_SERVERS"] || 1).to_i
(1..MAX_OF_SERVERS).each do |id|
config.vm.define "host#{id}" do |host|
host.vm.hostname = "host#{id}"
host.vm.network "private_network", ip: "192.168.56.#{10+id}"
end
end
end
실제 환경 변수 "MAX OF SERVERS"를 "10"대로 설정하고 가상 서버를 시작할 때는 다음과 같이 하십시오.$ export MAX_OF_SERVERS=10
$ time vagrant up
Bringing machine 'host1' up with 'virtualbox' provider...
Bringing machine 'host2' up with 'virtualbox' provider...
Bringing machine 'host3' up with 'virtualbox' provider...
Bringing machine 'host4' up with 'virtualbox' provider...
Bringing machine 'host5' up with 'virtualbox' provider...
Bringing machine 'host6' up with 'virtualbox' provider...
Bringing machine 'host7' up with 'virtualbox' provider...
Bringing machine 'host8' up with 'virtualbox' provider...
Bringing machine 'host9' up with 'virtualbox' provider...
Bringing machine 'host10' up with 'virtualbox' provider...
中略
real 7m44.957s
user 1m3.005s
sys 0m53.508s
$ vagrant status
Current machine states:
host1 running (virtualbox)
host2 running (virtualbox)
host3 running (virtualbox)
host4 running (virtualbox)
host5 running (virtualbox)
host6 running (virtualbox)
host7 running (virtualbox)
host8 running (virtualbox)
host9 running (virtualbox)
host10 running (virtualbox)
내 환경에서는 8분 만에 10대의 가상 서버를 가동했습니다.또한 기본값(1대)의 정의를 따르려면 환경 변수를 재설정하여 복원합니다.$ vagrant destroy -f
$ unset MAX_OF_SERVERS
$ vagrant status
Current machine states:
host1 not created (virtualbox)
총결산
환경 변수를 활용해 Vagrant에서 시작하려는 가상 서버의 대수를 유연하게 변경할 수 있는 Vagrant file의 쓰기 방법을 소개했다.인프라 시설의 학습과 시험 효율을 높이는 데 도움이 된다면 좋겠다.
Reference
이 문제에 관하여(Vagrant를 사용하면 여러 가상 서버의 Vagrantfile 쓰기를 유연하게 시작할 수 있습니다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/izumimatsuo/articles/2021-12-05-vagrant-multi-servers텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)