2014年01月31日

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

次のマイナーバージョンがリリースされた事により、困った事は無いだろうか?

少し前の事だが、CentOSが6.5がリリースされた。何も気にせずにyum updateすると、6.5へ・・・・。検証等の理由あって手元の環境は6.4を維持しておきたい事がある。さて、この状況をどうやって回避するのか。その手段の1つが、/etc/yum/vars/releaseverファイルによる固定。

検証環境
  • CentOS 6.4
  • kernel-2.6.32-358.el6.x86_64
  • yum-3.2.29-40.el6.centos.noarch
手順は/etc/yum/vars/releaseverを作成するだけ
  1. /etc/yum/vars/releaseverを作成
  2. ファイルの中身は、固定化したいバージョン
例: 6.4 固定化
/etc/yum/vars/releasever を作成
$ sudo $SHELL -c "echo 6.4 > /etc/yum/vars/releasever"
中身を確認
$ cat /etc/yum/vars/releasever
6.4
考察

例えばCentOSであれば、/etc/yum.repos.d/CentOS-Base.repoを修正し、$releaseverを特定バージョンに固定化する手段がある。しかし、これはCentOSに限定される。/etc/yum/vars/releaseverファイルの場合、特定ディストリビューションに依存しせず、固定が可能である事。RHELであろうがCentOSだろうがScientificLinuxであろうが、幅広く利用可能である事。

あとがき

1つ前のリリースバージョンのパッケージが、ミラーサイトから徐々に消えて行くのは、どうしたものか。

参考文献



編集

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)Vagrant 
このエントリーをはてなブックマークに追加

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)Vagrant 

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)Vagrant 
このエントリーをはてなブックマークに追加

あの環境・あのMACアドレスを持った構成を手元に再現したい

logo_vagrant-81478652

複数ノード、かつ、それぞれ狙ったMACアドレス指定した検証をしたい時。

検証環境
  • Windows 8.1
  • Vagrant 1.4.3
  • VMware Workstation 10.0.1 build-1379776
設定項目
  • 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 :vmware_workstation do |v, override|
    v.vmx["ethernet1.present"]        = "TRUE"
    v.vmx["ethernet1.vnet"]           = "VMnet11"
    v.vmx["ethernet1.connectionType"] = "custom"
    v.vmx["ethernet1.virtualDev"]     = "e1000"
    v.vmx["ethernet1.wakeOnPcktRcv"]  = "FALSE"
    v.vmx["ethernet1.addressType"]    = "generated"
  end

  config.vm.define "node01" do |node|
    node.vm.provider :vmware_workstation do |v, override|
      v.vmx["ethernet1.addressType"] = "static"
      v.vmx["ethernet1.address"]     = "52:54:00:00:01:01"
    end
  end

  config.vm.define "node02" do |node|
    node.vm.provider :vmware_workstation do |v, override|
      v.vmx["ethernet1.addressType"] = "static"
      v.vmx["ethernet1.address"]     = "52:54:00:00:02:01"
    end
  end
end
あとがき

少々複雑になって来ると、プログラムを書ける人でないと、厳しくなって来るか。

参考文献



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

2014年01月27日

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

デフォルト設定はヘッドレス

logo_vagrant-81478652

特にマシンイメージそのものを検証する場合は、コンソール窓が必要となる。

検証環境
  • Windows 8.1
  • Vagrant 1.4.3
  • VMware Workstation 10.0.1 build-1379776
設定項目
  • gui: 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.provider :vmware_workstation do |v, override|
    v.gui = true
  end
end
あとがき

VMware Workstationかつヘッドレスモードだと、管理UIすら出て来ないので、手元に仮想マシンが動いてる事すら忘れてしまう。そうすると、うっかりそのままシャットダウンしてしまいそうなので、基本的にコンソール窓を表示させてる事が多い。特に毎日シャットダウンするようなラップトップの場合は。

参考文献



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

2014年01月26日

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

ベアメタルと似た構成にしたくて

logo_vagrant-81478652

欲しかったのは複数NIC、更には別ネットワークに属している構成。

検証環境
  • Windows 8.1
  • Vagrant 1.4.3
  • VMware Workstation 10.0.1 build-1379776
設定項目
  • nic: 3
  • network: 3
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 :vmware_workstation do |v, override|
    # eth1
    v.vmx["ethernet1.present"]        = "TRUE"
    v.vmx["ethernet1.vnet"]           = "VMnet11"
    v.vmx["ethernet1.connectionType"] = "custom"
    v.vmx["ethernet1.virtualDev"]     = "e1000"
    v.vmx["ethernet1.wakeOnPcktRcv"]  = "FALSE"
    v.vmx["ethernet1.addressType"]    = "generated"

    # eth2
    v.vmx["ethernet2.present"]        = "TRUE"
    v.vmx["ethernet2.vnet"]           = "VMnet12"
    v.vmx["ethernet2.connectionType"] = "custom"
    v.vmx["ethernet2.virtualDev"]     = "e1000"
    v.vmx["ethernet2.wakeOnPcktRcv"]  = "FALSE"
    v.vmx["ethernet2.addressType"]    = "generated"

    # eth3
    v.vmx["ethernet3.present"]        = "TRUE"
    v.vmx["ethernet3.vnet"]           = "VMnet13"
    v.vmx["ethernet3.connectionType"] = "custom"
    v.vmx["ethernet3.virtualDev"]     = "e1000"
    v.vmx["ethernet3.wakeOnPcktRcv"]  = "FALSE"
    v.vmx["ethernet3.addressType"]    = "generated"
  end
end

vnet0, vnet8は予約されてそう/良く利用されている と言う何となくの経験則により、避けた。

あとがき

設定に迷ったら、構成したい内容でUIからVMを作成し、vmxファイルを覗いてみると、どのパラメタが、どの項目に当てはまるかが、分かる。VMX Hacksに近い。

参考文献



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

2014年01月25日

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

新たな開発ワークフロー改善へ

logo_vagrant-81478652

手元のラップトップでKVM環境を検証したくて、VMware Workstationを使い始めた。残念ながら、今のVirtualBoxではKVMを使えないのだ。きっとそのうち使えるようになるのだろう。待ってはいられないので、VMware Workstationを使う。

使い捨て環境となるのは必至。Vagrantも使い始める事にした。少し調べてみて分かったのは、世に出回ってる設定例がVirtualBox構成ばかりで、VMware構成は余り見かけない事。そこで、手元の環境で設定する事が多い項目を少しずつ自分用メモとして書き溜めて行く事にした。今回は第一弾、最も基本となる設定。

検証環境
  • Windows 8.1
  • Vagrant 1.4.3
  • VMware Workstation 10.0.1 build-1379776
設定項目
  • memory: 2048
  • cpu: 2
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 = "redhat-64"

  config.vm.provider :vmware_workstation do |v, override|
    v.vmx["memsize"]  = "2048"
    v.vmx["numvcpus"] = "2"
  end
end
あとがき

VMwareの場合は、VMXを直接書いてる感が溢れている。

参考文献



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

2014年01月13日

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

2014/01/13 13:13:00 @ グラビティ高田馬場店

グラビティ高田馬場店にタッチ! : ガラガラ。

住所:東京都豊島区高田3-13-8 吉美ビル1F




編集
@hansode at 13:13|Permalinkライフログ | ロケタッチ

2013年12月26日

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

Ruby 2.1.0 is released

今年も12/25リリースとなった。お疲れ様でした。

We are pleased to announce the release of Ruby 2.1.0.

Ruby 2.1 has many improvements including speed up without severe incompatibilities

自分は得意分野のrpmspec作成と、パッケージビルドを終えた。

ビルド済みRPMはGitHubに置いてあるので、ご自由にどうぞ。インストール手順は下記の通り。

検証環境
  • CentOS 6.5
  • kernel-2.6.32-431.el6.x86_64
事前準備
git clone
$ git clone https://github.com/hansode/ruby-rpm
ruby.rpmはlibyamlに依存しているので、epelをインストールしておく
$ sudo rpm -Uvh http://dlc.wakame.axsh.jp.s3-website-us-east-1.amazonaws.com/epel-release
パッケージインストール
x86_64の場合
$ sudo rpm -ivh ruby-rpm/6/x86_64/ruby-2.1.0-2.el6.x86_64.rpm
i*86の場合
$ sudo rpm -ivh ruby-rpm/6/i386/ruby-2.1.0-2.el6.i386.rpm
あとがき

2.1からはバージョニングポリシーが変わった?

参考文献



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