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 の翻訳

続きを読む

CentOS6.5にJenkinsをインストールした方法

CentOS6.5にJenkinsをインストールしました。

データベースとかの設定が必要かとおもいきや
yumでインストールしてサービスとしてstartするだけで
とってもお手軽にインストールすることが出来ました。

sudo su
※以下、root権限で実行しています。
 一般ユーザーで実行する場合、ほとんどのコマンドで sudo が必要です。

yumにJenkinsのリポジトリを追加して、
yumを使ってJenkinsをインストール

wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
rpm –import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
yum install jenkins

Jenkinsを動かすのに必要なJavaをインストール

yum install java-1.6.0-openjdk

Jenkinsを起動

service jenkins start

※service jenkins start/stop/restart が使えます。

この状態でポート8080にアクセスするとJenkinsが表示されます。
デフォルトポートの変更など、Jenkinsの設定は

vi /etc/sysconfig/jenkins

設定を変えたらrestartを忘れずに。

次のコマンドで、
サーバーを再起動してもJenkinsが自動で起動するようにします。

chkconfig jenkins on

記載の情報はJenkinsの開発に伴い変更になる場合があります。
最新情報は以下をご確認下さい。
RedHat Linux RPM packages for Jenkins
Installing Jenkins on RedHat distributions