前回、VirtualBoxの導入をしました。

今回は、VirtualBoxをコマンドラインから操作することができるVagrantを使ってみようと思います。

環境

  • VirtualBox 4.2
  • Vagrant 1.2.3
  • Windows 7 x64

Vagrantとは

Vargrantとは、仮想環境をコマンドラインから操作することができる、オープンソースRubyスクリプトです。

VirtualBoxやVMware Fusion/VMware WorkBench、EC2をコマンドラインから操作できます。VMware Fusionは有料(4000円くらい?)なので、無料のVirtualBoxで試してみます。

Vagrantのインストール

最新版をサイトからとってきてインストールします。

Windows番だとMINGWやRubyがまとめて梱包されていました(重い)。

Cygwinで Vagrantを利用するための設定

Cygwinから利用するためには、以下のおまじないが必要みたいです。

dos2unix /cygdrive/c/HashiCorp/Vagrant/bin/vagrant

詳しくはココ。

ちなみに,このページだと、.VirtualBoxフォルダがCygwinで実行した場合には、Cygwinホーム配下に作成されて、Windowsホーム配下のものと二重管理になるので、リンクを作成するといいよとかいてある。

自分の場合、特に不都合がでることはなかったが、念のため、以下も実施しておく。

コマンドプロンプトから管理者権限で、

cd C:\Windows\system32
mklink C:\cygwin\home\TSUNEMICHI\.VirtualBox C:\home\TSUNEMICHI\.VirtualBox
mklink "C:\cygwin\home\TSUNEMICHI\VirtualBox VMs" "C:\home\TSUNEMICHI\VirtualBox VMs"

TSUNEMICHIの部分はユーザ名なので、適当に読み替えてください。

Vagrantの使い方

ドキュメントはコチラ。

環境構築には、3コマンドで行けます。

$ vagrant box add base https://files.vagrantup.com/lucid32.box
$ vagrant init
$ vagrant up

以下、詳細です。

boxファイルの作成

Vagrantを利用するためには、まずboxファイルというものを用意する必要がある。boxファイルの作成方法は、以下の2つがあるようだ。

  • テンプレートをネットから落としてくる方法
  • boxファイルを自作する方法

自作する方法はまた別の機会に調べることにして、まずはテンプレートからサクッとvagrantを試してみます。

以下のサイトで、様々なOSのISOにvagrant利用環境を整えたboxが配布されている。例えば、CentOS 6.4 minimal(VartualBox)は以下。

インストールは、以下のコマンドを実行。

vagrant box add base https://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130427.box

IOSイメージをダウンロードしてくるので、メチャクチャ時間がかかります。気長に待つこと。

Vagrantの初期化

boxファイルが作成できたら、VMを管理するためのディレクトリをつくって、ディレクトリでvagrantが動作するように初期化します。

% mkdir centos
% cd centos
% vagrant init base
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.

Vagrantfileが作成されます。

Vagrantの実行

いよいよ、vagrant実行です。コマンド数は少ないですが、ダウンロード時間でけっこうここに来るまで時間がかかった。。orz

いざ、実行!!( ´・∀・`)ノ

% vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
[default] Importing base box 'base'...
 [0K[default] Matching MAC address for NAT networking...
[default] Setting the name of the VM...
[default] Clearing any previously set forwarded ports...
[default] Creating shared folders metadata...
[default] Clearing any previously set network interfaces...
[default] Preparing network interfaces based on configuration...
[default] Forwarding ports...
[default] -- 22 => 2222 (adapter 1)
[default] Booting VM...
[default] Waiting for VM to boot. This can take a few minutes.

ここで起動が止まってしまった。。。いろいろと苦労してBIOSのvt-d設定を有効化したら、起動できた!

VirtualBoxを見ると、起動中となっていることがわかります。ホントにコマンドラインから起動できた!!

vagrantの基本コマンド

コマンドの使い方はヘルプから確認できます。

$ vagrant -h

Usage: vagrant [-v] [-h] command []

    -v, --version                    Print the version and exit.
    -h, --help                       Print this help.

Available subcommands:
     box
     destroy
     halt
     init
     package
     plugin
     provision
     reload
     resume
     ssh
     ssh-config
     status
     suspend
     up

基本コマンドは以下。

  • vagrant init vagrant 初期化(Vagrantfile作成)
  • vagrant up vagrant 起動
  • vagrant ssh vagrant ログイン
  • vagrant halt vagrant 終了

ログイン

$ vagrant ssh
Last login: Sun Jul 14 21:24:25 2013
Welcome to your Vagrant-built virtual machine.
[vagrant@localhost ~]$

vagrant 終了(一時停止)

$ vagrant halt
[default] Attempting graceful shutdown of VM...

コマンド数も少ないので、簡単に覚えられますね。動画も載せておきます。

容量は・・・

ちなにみ、気になる体重・・・じゃなかった、容量ですが、CentOS minimal構成でどのくらいになるのか、調べました。

vagrant initを実行したフォルダの容量を調べたら、4.51 KB・・・あれ?(´・д・`)

Boxファイルは、以下にありました。

$HOME/.vagrant.d/boxes/(ボックス名)/virtualbox/box-disk1.vmdk

容量は、524MB。軽い軽い。

そして、VMイメージですが、以下にありました。

C:\home\TSUNEMICHI\VirtualBox VMs

容量は、1.5GB。ふふふ、重い重い。

ちなみに、Boxファイルからではなく、普通にCentOS6.4 minimal構成のISOをインストールした場合の容量は、157MBだ。桁が1つ違う。。。