VagrantをPluginで拡張する

 2011/11/01

前回の話(Vagrantで簡単仮想マシン構築)の続き

Vagrantはプラグインを利用することによってvagrantコマンドを拡張することが出来ます。 ここでは入れておくと便利な2つのプラグインを紹介します。

Vagrantboxes

Vagrantboxesは http://www.vagrantbox.es/ に掲載されているVagrant用のboxに関する情報を取得したり、ダイレクトにboxを追加できるプラグイン。いちいちboxの追加の際に元となるOSのイメージを捜し回らなくても良くなる。

インストール

まず僕の環境(MacOS X Lion)だとrakeのバージョンが低かったのであげておく

sudo gem update rake

現在Rubygemsから入手できるVagrantboxesのバージョンが古いので、ソースコードを入手して自分でgemを作成する。

sudo git clone https://github.com/garethr/ruby-vagrantboxes.git
cd ruby-vagrantboxes
sudo vi vagrantboxes.gemspec      →vagrant本体への依存バージョンを0.8.0に変更する
sudo vi lib/vagrantboxes/version.rb  →versionを0.3.0に変更する
sudo rake build
cd pkg
sudo gem install vagrantboxes-0.0.3.gem

なお、この修正を施したものをgithubにおいておいた

使い方

すべてコマンドラインで操作する。

■boxの一覧を取得

$ sudo vagrant vagrantboxes search

とすると登録済のboxの一覧が表示される。

1    ubuntu lucid 32           http://files.vagrantup.com/lucid32.box
2    ubuntu lucid 64           http://files.vagrantup.com/lucid64.box
3    centos 5.5                http://dl.dropbox.com/u/15307300/vagrant-0.7-centos-64-base.box
4    debian squeeze 32         http://mathie-vagrant-boxes.s3.amazonaws.com/debian_squeeze_32.box
(略)
21   centos 5.6 32             http://yum.mnxsolutions.com/vagrant/centos_56_32.box
26   ubuntu 11.04 server i386  http://dl.dropbox.com/u/7490647/talifun-ubuntu-11.04-server-i386.box
27   ubuntu 11.04 server amd64 http://dl.dropbox.com/u/7490647/talifun-ubuntu-11.04-server-amd64.box
28   scientific linux 6 64     http://download.frameos.org/sl6-64-nochef.box

■キーワードにマッチするboxの検索

$ sudo vagrant vagrantboxes search cents

とするとcentosにマッチするboxが表示される。

3    centos 5.5                http://dl.dropbox.com/u/15307300/vagrant-0.7-centos-64-base.box
6    opscode centos 5          http://opscode-vagrant-boxes.s3.amazonaws.com/centos5-gems.box
7    opscode ubuntu 10.04      http://opscode-vagrant-boxes.s3.amazonaws.com/ubuntu10.04-gems.box
9    puppet centos 5.5 64      http://puppetlabs.s3.amazonaws.com/pub/centos5_64.box
10   puppet centos 4 64        http://puppetlabs.s3.amazonaws.com/pub/centos4_64.box
21   centos 5.6 32             http://yum.mnxsolutions.com/vagrant/centos_56_32.box

■boxの詳細を表示

$ sudo vagrant vagrantboxes show 1

とすると指定したIDのboxの詳細情報が表示される。

ubuntu lucid 32
http://files.vagrantup.com/lucid32.box

An Ubuntu 10.04 Lucid base box maintained by the folks behind vagrant.

■指定したIDのboxを追加する

$ sudo vagrant vagrantboxes add 4

とするとdebian squeeze 32のboxがダウンロードされる。

[vagrant] Downloading with Vagrant::Downloaders::HTTP...
[vagrant] Downloading box: http://mathie-vagrant-boxes.s3.amazonaws.com/debian_squeeze_32.box
[vagrant] Extracting box...
[vagrant] Verifying box...
[vagrant] Cleaning up downloaded box…

これによって

$ sudo vagrant box list

として登録済のbox一覧を表示すると、以下のように追加されたboxが表示される(これでいつでも使える)

centos56_32
debian squeeze 32
lucid32

あとは好きに仮想マシンを作れば良い(前回書いた通りだ)

Sahara

Saharaはコマンドラインから仮想マシンの状態をsandboxモード(変更をいつでも巻き戻せる)に変更できるプラグインだ。これを使うことで、例えばchefのレシピ作成やミドルウェアのインストールの評価などがやりやすくなる。

インストール

同様にgithubから最新のソースを取得してgemを作るのが無難だ。ただし今のところ修正は必要ない。

sudo git clone https://github.com/jedi4ever/sahara.git
cd sahara
sudo rake build
cd pkg
sudo gem install ./sahara-0.0.7.gem

使い方

使い方は起動中のVagrantディレクトリに移動し

■sandboxモードに入る(仮想マシンを再起動しても有効だ)

sudo vagrant sandbox on

■sandboxを開始時点にロールバックする

sudo vagrant sandbox rollback

■sandboxモードの終了(この時点でcommitしていないものは消える)

sudo vagrant sandbox off

■sandboxの内容を恒久的に反映

sudo vagrant sandbox commit

■現在sandboxモードかどうかを確認する

sudo vagrant sandbox status

ということで今回はVagrantをPluginで拡張する方法について説明した。この項はまだまだ続く。

 2011/11/01

サイト内検索


著作

寄稿

Latest post: