vagrantで仮想環境を手軽に構築する

背景

開発時に壊しても大丈夫な仮想的な環境があると大変便利です。
昨今、マシンパワーの増加や、仮想化技術の向上によって手軽に仮想環境を構築することが出来るようになりました。
今回は手軽に仮想環境を構築する方法について説明します。 (※ mac限定)

環境構築

仮想環境の構築にはvirtualboxvagrantを用います。

通常はインストールする際には公式ページからdmgファイル等をダウンロードし、インストールウィザードに従ったり、ApplicationフォルダにD&Dします。

しかし今回はhomebrewの拡張であるhomebrew-caskを用いてみます。
homebrew-caskはMacのGUIアプリケーションをhomebrewで管理できるようになる拡張機能です。

homebrew-caskのインストール自体もbrewコマンドで行うことが可能です。

brew tap phinze/homebrew-cask
brew install brew-cask

homebrew-caskの使用方法は、brewコマンドを拡張した物になります。
例えば利用可能なパッケージの検索が、通常brew searchであるのに対し、brew cask searchになります。

$ brew search google
google-app-engine    google-perftools     google-sparsehash    google-sql-tool      google-go
$ brew cask search google
google-app-engine-launcher  google-chrome-canary    google-earth            google-notifier
google-chrome           google-drive        google-hangouts         google-quick-search-box

Google Chromeをインストールしたければ、brew cask install google-chromeとするだけです。

今回はvirtualboxとvagrantの導入を行うので以下のコマンドでインストールを行います。

brew cask install virtualbox
brew cask install vagrant

homebrew本体との差異は、homebrewでは/usr/local/Cellar以下に実体を配置しますが、homebrew-caskではデフォルトで/opt/homebrew-cask/Caskroomに配置します。

仮想環境の作成

vagrantが利用できるようになったので、仮想環境の構築を行います。
vagrantの仮想環境はboxと呼ばれるOSの仮想イメージで管理します。
boxを自作することも可能ですが、最初はvatualbox用にセットアップされたbox等が公開されているvagrant boxesを利用するのが便利です。

使いたいboxファイルのアドレスをコピーし、vagrantの初期化を行います。

vagrant init precise64 http://files.vagrantup.com/precise64.box

設定ファイルであるVagrantが作成されます。
取りあえずデフォルトで起動してみましょう。

vagrant up

これだけで仮想環境が立ち上がります。

Bringing machine 'default' up with 'virtualbox' provider...
[default] Box 'precise64' was not found. Fetching box from specified URL for
the provider 'virtualbox'. Note that if the URL does not have
a box for this provider, you should interrupt Vagrant now and add
the box yourself. Otherwise Vagrant will attempt to download the
full box prior to discovering this error.
Downloading or copying the box...
Extracting box...te: 1860k/s, Estimated time remaining: 0:00:02)
Successfully added box 'precise64' with provider 'virtualbox'!
[default] Importing base box 'precise64'...
[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 machine to boot. This may take a few minutes...
[default] Machine booted and ready!
[default] Mounting shared folders...
[default] -- /vagrant

仮想環境の起動後、仮想マシンにsshでログインするコマンドも用意されています。

vagrant ssh

これで仮想環境にログインすることが出来ました。

Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-generic x86_64)

 * Documentation:  https://help.ubuntu.com/
Welcome to your Vagrant-built virtual machine.
Last login: Wed Sep 25 02:54:12 2013 from 10.0.2.2
vagrant@precise64:~$