Vagrant를 사용하면 여러 가상 서버의 Vagrantfile 쓰기를 유연하게 시작할 수 있습니다

8335 단어 Vagranttech
"안녕하세요, 이것은 제가 처음으로 뉴스를 발표하는 것입니다."
Vagrant는 Vagrantfile을 정의하여 여러 대의 가상 서버를 시작하여 인프라 시설의 학습과 테스트를 진행할 수 있습니다.그때는 실행하고 싶은 내용에 따라 시작하는 가상 서버의 대수를 바꾸고 싶은 일이 있었다.그러나 Vagrant file을 하나씩 덮어쓰는 것은 번거롭습니다.
이 글은 시작하고자 하는 가상 서버의 테이블 수를 유연하게 변경할 수 있는Vagrantfile의 쓰기 방법을 설명합니다.

전제 조건


이 글의 내용은 다음 환경에서의 동작을 확인하고 있다.
  • MacBook Air(13-inch, 2017)
  • macOS 11.6
  • Vagrant 2.2.18
  • VirtualBox 6.1.28
  • Vagrant 및 VirtualBox 설치에 대해서는 다음 기사를 참조하십시오.
    https://qiita.com/tsunemiso/items/d184366b8926bd5a8d00
    https://qiita.com/OPySPGcLYpJE0Tc/items/3268aa09c16a25cded0f

    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의 쓰기 방법을 소개했다.인프라 시설의 학습과 시험 효율을 높이는 데 도움이 된다면 좋겠다.

    좋은 웹페이지 즐겨찾기