前回、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で試してみます。
- VMware Fusion 5
Vagrantのインストール
最新版をサイトからとってきてインストールします。
- Vagrant - Downloads
- Vagrant_1.2.3.msi
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)は以下。
- A list of base boxes for Vagrant - Vagrantbox.es
- CentOS 6.4 x86_64 Minimal (VirtualBox Guest Additions 4.2.12, Chef 11.4.4, Puppet 3.1.1)
インストールは、以下のコマンドを実行。
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つ違う。。。