Vagrantfile

2014年02月22日

このエントリーをはてなブックマークに追加

bondingを検証したい

logo_vagrant-81478652

bondingを3セット、そんな検証環境が欲しかった。

検証環境
  • Windows 8.1
  • Vagrant 1.4.3
  • VirtualBox 4.3.6 r91406
設定項目
  • NIC枚数: 7(6枚追加)
  • インターナルネットワーク: 3本
Vagrantfile

bondingインターフェースとスレーブインターフェースの構成。

  • bond0
    • eth1
      • eth2
  • bond1
    • eth3
      • eth4
  • bond2
    • eth5
      • eth6
    # -*- mode: ruby -*-
    # vi: set ft=ruby :

    # Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
    VAGRANTFILE_API_VERSION = "2"

    Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
      config.vm.box = "centos-6-x86_64"

      config.vm.provider :virtualbox do |v, override|
        config.vm.synced_folder ".", "/vagrant", disabled: true

        # bond0: eth1, eth2
        v.customize ["modifyvm", :id, "--nic2",   "intnet"]
        v.customize ["modifyvm", :id, "--nic3",   "intnet"]
        v.customize ["modifyvm", :id, "--intnet2", "bond0"]
        v.customize ["modifyvm", :id, "--intnet3", "bond0"]
        # bond1: eth3, eth4
        v.customize ["modifyvm", :id, "--nic4",   "intnet"]
        v.customize ["modifyvm", :id, "--nic5",   "intnet"]
        v.customize ["modifyvm", :id, "--intnet4", "bond1"]
        v.customize ["modifyvm", :id, "--intnet5", "bond1"]
        # bond2: eth5, eth6
        v.customize ["modifyvm", :id, "--nic6",   "intnet"]
        v.customize ["modifyvm", :id, "--nic7",   "intnet"]
        v.customize ["modifyvm", :id, "--intnet6", "bond2"]
        v.customize ["modifyvm", :id, "--intnet7", "bond2"]
      end
    end

ここで注目したいのは、単にintnetを追加するだけでなく、bondingペア毎にintnetを構成してる事。--intnetXで指定しない場合は、VirtualBoxは全て "intnet" としてインターネットワークを構成する。

あとがき

もはやVBoxManageコマンドを相当意識しないと細かな設定を行えない。

参考文献



編集
@hansode at 13:00|PermalinkComments(0)TrackBack(0)

2014年01月29日

このエントリーをはてなブックマークに追加

bridgeインターフェースを追加する時は特にIPアドレスは不要

logo_vagrant-81478652

2枚目のNICを追加し、bridgeインターフェースを作成した環境で検証したい。そうした場合、private_networkに属したNICを追加すれば良いのだが、IPが必須パラメタとなっている。そんな場面の回避策。

検証環境
  • Windows 8.1
  • Vagrant 1.4.3
  • VirtualBox 4.3.6 r91406
  • VMware Workstation 10.0.1 build-1379776
設定項目
  • NIC枚数: 2
  • config.vm.network "private_network", ip: "0.0.0.0"
Vagrantfile

特定provider非依存パラメタであるので、virtualboxであろうがvmwareであろうが、有効設定。

# -*- mode: ruby -*-
# vi: set ft=ruby :

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "centos-6-x86_64"

  config.vm.network "private_network", ip: "0.0.0.0"
end

キモは、 0.0.0.0。

前述した通り、IPは必須パラメタなのである。仮に省略した場合はエラーとなる。これは後ほど触れる。8割り以上の設定では、NICとIPアドレスが対となる構成なのだろうけども、bridgeインターフェースを作成したい場合は、邪魔である。

参考までに、IPアドレス指定しない場合

前述のVagrantfileとは違い、ip: "0.0.0.0"を指定しない場合。

# -*- mode: ruby -*-
# vi: set ft=ruby :

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "centos-6-x86_64"

  config.vm.network "private_network"
end

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
There are errors in the configuration of this machine. Please fix
the following errors and try again:

vm:
* An IP is required for a private network.

実行結果により、private_network指定の場合、IPは必須パラメタである事が分かる。

あとがき

『IPアドレス設定は、provisioner任せにした方が良さそうだ。』と言うのが、これまでのVagrant生活の経験則として落ち着いて来た。

参考文献



編集
@hansode at 15:00|PermalinkComments(0)TrackBack(0)
このエントリーをはてなブックマークに追加

shared folder不要な場合もある

logo_vagrant-81478652

例えばshared folder非依存な場合がある。そんな時はshared folder機能を無効化しておく事により、起動時間を短縮可能だ。

検証環境
  • Windows 8.1
  • Vagrant 1.4.3
  • VirtualBox 4.3.6 r91406
  • VMware Workstation 10.0.1 build-1379776
設定項目
  • config.vm.synced_folder: disabled: true
Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "centos-6-x86_64"

  config.vm.synced_folder ".", "/vagrant", disabled: true
end

特定provider非依存パラメタであるので、virtualboxであろうがvmwareであろうが、有効設定。また、provider毎に有効・無効する事も可能。今の所、shared folderを使う場面に遭遇した事が無いので、個人環境では基本的に無効化している。

あとがき

本エントリでは無効化する話が主題だけども、本来はマウントポイント変更(/vagrant -> /path/to/mnt)する使い方が多いのだろう。

参考文献



編集
@hansode at 14:00|PermalinkComments(0)TrackBack(0)

2014年01月28日

このエントリーをはてなブックマークに追加

VMware非依存な検証内容はVirtualBoxへ

logo_vagrant-81478652

本エントリは、『Vagrant-VMwareにおける基本設定Vagrantfile - 狙ったMACアドレスを指定する』のVirtualBox編。

検証作業を進めて行くと、実はKVM非依存環境で良い事が分かった。そこで、複数ノード・それぞれ狙ったMACアドレス指定する検証をVirtualBox環境で構築した。

検証環境
  • Windows 8.1
  • Vagrant 1.4.3
  • VirtualBox 4.3.6 r91406
設定項目
  • node01
    • ethernet1.addressType: static
      • ethernet1.address: 52:54:00:00:01:01
  • node02
    • ethernet1.addressType: static
      • ethernet1.address: 52:54:00:00:02:01
Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "centos-6-x86_64"

  config.vm.provider :virtualbox do |v, override|
    v.customize ["modifyvm", :id, "--nic2", "intnet"]
  end

  config.vm.define "node01" do |node|
    node.vm.provider :virtualbox do |v, override|
      v.customize ["modifyvm", :id, "--macaddress2", "525400000101"]
    end
  end

  config.vm.define "node02" do |node|
    node.vm.provider :virtualbox do |v, override|
      v.customize ["modifyvm", :id, "--macaddress2", "525400000201"]
    end
  end
end

注意点

  • macaddressX の数字は、1から始まるindex
  • MACアドレスに : を含めてはいけない
あとがき

VMwareで凝った設定をしようとするとVMXの知識が必要であるように、VirtualBoxで凝った設定をしようとするとVBoxManageコマンドの知識が必要となる。

参考文献



編集
@hansode at 15:00|PermalinkComments(0)TrackBack(0)