Vagrant 用の base box (ベースボックス) を VirtualBox の仮想マシンから作成する方法 (Creating a Base Box – VirtualBox Provider – Vagrant Documentation の翻訳)

この記事は、
Vagrant公式ドキュメントの次の記事を翻訳したものです。
Creating a Base Box – VirtualBox Provider

Vagrant用のBoxファイルを仮想マシンから生成するにあたって、
VirtualBox上の仮想マシンを利用する場合に
特別必要となる手順を記載しています。

VirtualBoxだけでなく、
他のOS仮想環境とも共通となるBox作成手順は
次の記事に記載しています。
Vagrantのboxを自分で作成する方法
公式ドキュメント”CREATING A BASE BOX”の翻訳

この記事の中にも書かれていますが、
まず上記の共通事項を理解した上で、
本記事のVirtualBox向けの内容を読むことをおすすめします。

また、翻訳の精度や正確性は保証できませんので
予めご了承の上ご利用下さい。

以下翻訳

CREATING A BASE BOX – VirtualBox

他の仮想環境同様、VirtualBoxには、base box の作成方法に影響する独自のフォーマットを持っています。

本章を読むより前に、
general guide to creating base boxes
(訳注:翻訳はこちら
を読むべきでしょう。
別のタブで開いておいて、頻繁に参照するのが最も便利かもしれません。
そのページには共通のソフトウェアインストールについて重要な情報が記載されています。

加えて、
basics of the box file format
も理解の助けになるでしょう。


この章はかなり発展的であり、
Vagrant入門者が理解する必要のあるものではありません。
もしVagrantを始めるところなら、この章はスキップして、
既存のboxを使って下さい。
あなたが上級者で、
自分自身でカスタマイズしたboxを作りたいのであれば、
この章が有用でしょう。

追加のソフトウェア

general guide to creating base boxes (翻訳はこちら)に基づく、
デフォルトでインストールされるべきソフトの他に、
VirtualBox base box はいくつかのソフトウェアを
追加で必要とします。

VIRTUALBOX GUEST ADDITIONS

共有フォルダが機能するために、
VirtualBox Guest Additions
をインストールしなければなりません。ゲストアディションをインストールすると、ゲストOSがVirtualBox内で実行されていることを認識できることによって最適化がなされるため、大抵パフォーマンスも改善します。

ゲストアディションをインストールする前に、Linuxカーネルヘッダと基本的な開発ツールが必要です。Ubuntuに置いては、これらを次のように簡単にインストールできます。

$ sudo apt-get install linux-headers-$(uname -r) build-essential

次に、ゲストアディションの(CD-ROMの)イメージが、(VirtualBoxの)GUIの”Devices”をクリックし、”Install Guest Additions”から利用できることを確認して下さい。そして、どこかにCD-ROMをマウントします。Ubuntuでは次のようになるでしょう。

$ sudo mount /dev/cdrom /mnt/cdrom

最後に、ゲストアディションをインストールするシステムに適切なシェルスクリプトを実行します。x86のLinuxであれば、それは次のようになります。

$ sudo sh /media/cdrom/VBoxLinuxAdditions.run

OSインストール時に、容量削減のため、、ディスクトップ環境をインストールしていない場合、OpenGLやWindowSystemDriverが無いという警告が出るかもしれませんが、無視してかまいません。
コマンドが成功すれば、ゲストアディションのインストールの完了です。

Boxのパッケージング

VagrantはVirtualBoxの base box をパッケージングするシンプルな手段を持っています。必要なソフトをすべてインストールしたら、次のコマンドを実行します

$ vagrant package --base my-virtual-machine

“my-virtual-machine”の部分は、 base box としてパッケージしたいVirtualBoxの仮想マシン名に置き換えて下さい。
この操作には数分が掛かります。完了すれば、”package.box”ファイルが新規の base box としてワーキングディレクトリに作成されるでしょう。ここまでで、 base box の作成に成功です。

Rawコンテンツ

このセクションはboxファイルに含まれている生のデータについて説明します。この情報は base box の作成にあたっては有用ではないかもしれません。しかし問題をデバッグする必要がある場合に有用であるかもしれません。

VirtualBoxの base box は VirtualBox からエクスポートされたファイルをアーカイブしたものです。ここにboxの内容の1例があります。

$ tree
.
|-- Vagrantfile
|-- box-disk1.vmdk
|-- box.ovf
|-- metadata.json

0 directories, 4 files

VirtualBoxの仮想マシンからエクスポートされたファイル群に加え、”metadata.json”ファイルがVagrantによって使用されています。
“Vagrantfile”もあります。これはNATネットワークデバイスのMACアドレスの設定値を含んでいます。ViatualBoxが適切に機能するためにそれが必要とされるためです。
VirtualBoxマシンを生成する時、Vagrantは box ファイルの中に最初に見つけたovfファイルをインポートします。

Vagrantのboxを自分で作成する方法 公式ドキュメント”CREATING A BASE BOX”の翻訳

Vagrantで使用するboxを自作する方法について記載しています。

この記事はVagrantのドキュメント
CREATING A BASE BOX
を独断と偏見で翻訳したものです。
正確性は保証できませんので予めご了承の上ご利用下さい。

今回はひとまず、
共通のCREATING A BASE BOX だけ翻訳しました。
自作boxについての共通ドキュメントになります。

これと別に、個別のOS仮想化環境(VirtualBoxやVMware)の仮想マシンから
それぞれboxファイルを作成する方法を記載したドキュメントが存在します。
そちらは、この記事の共通事項を理解した上で読まれることをおすすめします。

参考(2014/02/16更新)
VirtualBox上の仮想マシンからBoxを作成する際のドキュメントを翻訳しました。
Creating a Base Box – VirtualBox Provider
Creating a Base Box – VirtualBox Provider の翻訳

続きを読む

vagrantコマンドを打つたび The following plugins were installed with a version of Vagrant…と出てくるのを解消

いつからか、vagrant コマンドを打つたびに
英語でメッセージが出てくるようになったのを
ずっと放置していた。英語だから。

The following plugins were installed with a version of Vagrant
that had different versions of underlying components. Because
these component versions were changed (which rarely happens),
the plugins must be uninstalled and reinstalled.

To ensure that all the dependencies are properly updated as well
it is _highly recommended_ to do a `vagrant plugin uninstall`
prior to reinstalling.

This message will not go away until all the plugins below are
either uninstalled or uninstalled then reinstalled.

The plugins below will not be loaded until they’re uninstalled
and reinstalled:

sahara

いい加減に消そうと思って
まじめにメッセージを読んだらとても簡単な事だった。
続きを読む