Vagrant로 작성하는 VM의 스펙 등의 설정 (cpu/memory/storage 외)

Vagrant를 사용하여 VirtualBox에 VM 구축 - Qiita

여기서 쓴 내용의 '잔건'
특히 지정없이 Vagrant를 사용하여 VM을 만들면 vCPU : 1/memory : 512MB/Storage : 10GB에서 VM이 생성되지만 개발/검증 용으로 부족한 경우 각 매개 변수는 Vagrantfile 설정할 수 있다.

환경
  • 호스트 OS: Windows 10 Home (x64)
  • 하이퍼바이저: VirtualBox 5.2.26
  • Vagrant: v2.2.4

  • CPU와 메모리



    여기 VirtualBox의 경우 .
    다른 Hypervisor의 경우 문서 참조

    VirtualBox 프로바이더의 설정으로 지정할 수 있으므로, 세트로 지정하는 것이 좋다.
    (덧붙여서 CPU 수는 cpu
    이하의 설정으로, 2CPU·RAM2048GB로 VM을 할 수 있다.
    생성된 VM의 경우 s 에서 설정을 변경할 수 있습니다.

    Vagrantfile
      config.vm.provider "virtualbox" do |vb|
        vb.cpus = 2
        vb.memory = 2048
      end
    

    스토리지



    사실 스토리지는 디폴트에서는 지정할 수 없기 때문에, Vagrant의 플러그인을 추가할 필요가 있다.

    참고 : Vagratfile에 한 줄 쓰는 것만으로 VM의 디스크 공간을 늘리는 방법 - Qiita

    플러그인 확인


    C:\Users\zaki\src\vagrant\sample>vagrant plugin list
    No plugins installed.
    
    

    목록에 표시되지 않으면 설치 필요

    vagrant-disksize 플러그인 설치


    C:\Users\zaki\src\vagrant\sample>vagrant plugin install vagrant-disksize
    Installing the 'vagrant-disksize' plugin. This can take a few minutes...
    Fetching: vagrant-disksize-0.1.3.gem (100%)
    Installed the plugin 'vagrant-disksize (0.1.3)'!
    
    C:\Users\zaki\src\vagrant\sample>vagrant plugin list
    vagrant-disksize (0.1.3, global)
    
    C:\Users\zaki\src\vagrant\sample>
    

    Vagrantfile 지정



    디폴트 10GB의 스토리지는, 이하의 설정으로 임의의 사이즈로 VM이 작성된다.

    Vagrantfile
    Vagrant.configure("2") do |config|
      # ...
    
      config.disksize.size = '40GB'
    
      # ...
    

    CentOS 7.6


    [vagrant@centos-dev01 ~]$ df -h
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda1        40G  3.3G   37G   9% /
    devtmpfs        912M     0  912M   0% /dev
    tmpfs           920M     0  920M   0% /dev/shm
    tmpfs           920M   17M  903M   2% /run
    tmpfs           920M     0  920M   0% /sys/fs/cgroup
    tmpfs           184M     0  184M   0% /run/user/1000
    



    CentOS는 메인 디스크가 지정 사이즈의 것이 된다.

    우분투 18.04


    vagrant@ubuntu-dev01:~$ df -h
    Filesystem      Size  Used Avail Use% Mounted on
    udev            985M     0  985M   0% /dev
    tmpfs           200M  624K  199M   1% /run
    /dev/sda1        39G  1.4G   38G   4% /
    tmpfs           997M     0  997M   0% /dev/shm
    tmpfs           5.0M     0  5.0M   0% /run/lock
    tmpfs           997M     0  997M   0% /sys/fs/cgroup
    vagrant         476G  242G  235G  51% /vagrant
    tmpfs           200M     0  200M   0% /run/user/1000
    



    Ubuntu라면, 지정 사이즈의 디스크가 「추가」되었다. (이 근처의 구조는 잘 모르겠지만)
    덧붙여서 작성 직후라면 10GB 그대로의 표시가 되어 있는 경우가 있지만, 표시를 리프레쉬 하면 제대로 표시된다.

    공유 폴더



    이쪽 에도 쓰고 있지만 재게재.

    Vagrantfile



    설정만 하면 아래와 같이

    Vagrantfile
    Vagrant.configure("2") do |config|
    
      # [...]
    
      config.vm.synced_folder "~/src", "/share", mount_options: ['dmode=755', 'fmode=644']
    

    이 설정으로, 「호스트 OS의 vagrant reload (Windows이면 ~/src )」가, 「게스트 OS의 %USERPROFILE%/src

    플러그인



    스토리지와 마찬가지로 플러그인을 넣을 필요가 있습니다.
    zaki@mascarpone% vagrant plugin install vagrant-vbguest
    Installing the 'vagrant-vbguest' plugin. This can take a few minutes...
    Installed the plugin 'vagrant-vbguest (0.18.0)'!
    zaki@mascarpone% vagrant plugin list
    vagrant-disksize (0.1.3, global)
    vagrant-vbguest (0.18.0, global)
    

    VM의 이름



    일부는 이쪽에도 쓰고 있지만 재 게시

    게스트 운영 체제의 hostname



    게스트 OS에서
    [vagrant@centos-dev01 ~]$ hostname
    centos-dev01.localhost
    

    라는 상태로 하려면, Vagrantfile 을 다음과 같이 기술한다

    Vagrantfile
    Vagrant.configure("2") do |config|
    
      config.vm.hostname = "centos-dev01.localhost"
    


    VirtualBox 관리자의 컴퓨터 이름





    이 부분의 이름을 지정하려면 Vagrantfile을 다음과 같이 작성하십시오.

    Vagrantfile
    Vagrant.configure("2") do |config|
    
      # ...
    
      config.vm.provider "virtualbox" do |vb|
        vb.name = "ubuntu-dev01"
    


    VM 설명





    이 부분의 텍스트를 설정하기 위한 Vagrantfile 의 설정 항목은 없지만, 임의의 인수를 지정할 수 있다 /share 를 사용해, VirtualBox 의 Chapter 8. VBoxManage / 8.8. VBoxManage modifyvm / 8.8.1. General Settingscustomize 를 사용하면 설정할 수 있다.
    (VM의 수가 10이나 20 정도가 되면) 머신의 설명이나 고정 IP 주소를 지정해 두면 편리.

    Vagrantfile
    Vagrant.configure("2") do |config|
      config.vm.provider "virtualbox" do |vb|
        vb.customize ["modifyvm", :id, '--description', 'develop for ubuntu (52)']
    

    덧붙여서, Vagrant 2.2.4/VirtualBox 5.2.26의 환경에서는, 일본어는 문자 화해 사용할 수 없었다.

    네트워크



    호스트 전용 어댑터 추가



    여기에도 쓰고 있지만 재 게시

    디폴트라면 NAT용의 인터페이스만으로, 호스트 OS와 자유로운 소통은 할 수 없다.
    호스트 OS 간의 라우트를 작성하려면 추가로 호스트 전용 어댑터의 NIC를 추가하면 됩니다.

    추가하려면 다음과 같습니다. (static ipaddress 설정에서 192.168.244.51의 경우)

    Vagrantfile
    Vagrant.configure("2") do |config|
    
      config.vm.network "private_network", ip: "192.168.244.51"
    

    Private Networks - Networking - Vagrant by HashiCorp

    기타



    뭔가 있으면 추기… 예정…
  • VM을 작성할 때 호스트 OS에서 파일을 put/copy합니다.
  • 고정 ssh 개인 키 설정

  • 등은 Ansible 검증 환경에 특화된 Vagrant를 사용한 VM 구축

    모두 포함 Sanple Vagrantfile



    Vagrantfile
    # -*- mode: ruby -*-
    # vi: set ft=ruby :
    
    Vagrant.configure("2") do |config|
      config.vm.box = "centos/7"
    
      config.vm.network "private_network", ip: "192.168.244.51"
      config.vm.hostname = "centos-dev01.localhost"
      config.disksize.size = '40GB'
    
      config.vm.synced_folder "~/src", "/share", mount_options: ['dmode=755', 'fmode=644']
    
      config.vm.provider "virtualbox" do |vb|
        vb.name = "centos-dev01"
    
        vb.cpus = 2
        vb.memory = 2048
        vb.customize ["modifyvm", :id, '--description', 'develop for centos (51)']
      end
    end
    

    Ubuntu도 (box의 지정 이외는) 같습니다.

    좋은 웹페이지 즐겨찾기