Vitualboxでプライベートクラウド

提供:TuntunkunMediaWiki

移動: 案内, 検索

目次

VirtualBox でプライベートクラウド

VirtualBox は VMware などの一般的な仮想化ソリューションと同様の機能を提供しているが、VMware に比べて後発のため完成度という点で若干劣るところはあるが、オープンソースで開発されているため API がオープンであり VirtualBox と連携するプロジェクトも多数開発されているというメリットがある。VirtualBox は基本的に、GUI フロントエンドと仮想ハードウェアを提供するハイパーバイザー、個々のマシンを実現する仮想マシンなどからなり、必ずしも GUI フロントエンドを必要としない。Linux サーバーをヘッドレス(モニターがない状態)で運用する例は少なくなく、X Window システムをインストールしていない環境でも動作させることができるという点も Linux ユーザーの間で指示される理由のひとつとなっている。そういった背景から、CUI のインターフェイスも充実しており全ての操作が CUI のみで行える。

Web フロントエンド

Linux サーバー上に VirtualBox をセットアップすれば X Window システムが不要な分軽量に動作させることができたり、コマンドのみで操作ができるというメリットがある反面、Windows などのゲスト OS を操作する際には RDP プロトコルを有効にした上で、RDP クライアントで接続しないといけなかったり、USB デバイスを追加する際などには USB デバイス一覧をリストアップして必要なデバイスをコマンドでアタッチするなど不便な操作も多い。そこで、WEB-UI を用いてそれらの操作をリーモートで制御できるようにしたいという要望は多い。そこで、開発されたのが phpVirtualBox というプロジェクトで、VirtualBox のフロントエンドが備えるインターフェイスをほぼそのまま再現しており簡単に仮想マシンを制御できるようになっている。

VirtualBoxインストールに必要なパッケージ

VirtualBox のインストールに必要なパッケージをインストールを行ないます。

yum install -y dkms
yum install -y SDL


VirtualBox のセットアップ

VirtualBox はバイナリーパッケージで公開されているが、カーネルモジュールを含んでいるためインストール時にはコンパイル作業が必要になる。そのため、GCC コンパイラと現在使用しているカーネルのソースコードを入手する必要がある。Fedora では、以下のようにパッケージマネージャ経由でインストールすることができる。

yum groupinstall -y "Development Tools"
yum install -y kernel-{devel,headers}-$(uname -r)

必要な環境が整ったら、virtualbox.org から VirtualBox の最新バイナリパッケージを入手し、インストールする。

https://www.virtualbox.org/wiki/Downloads

インストールが完了すると自動でカーネルモジュールがコンパイル・ロードされるのですぐさま利用可能な状態になる。ただ、この状態では USB ホストが利用できない状態なので拡張パッケージをダウンロードしてインストールする必要がある。リモートデスクトップ機能や USB 機能が要らないという特殊な場合をのぞけばインストールしておくのが望ましい。Oracle VM VirtualBox_Extension を落としてきて、VBoxManage コマンドで以下のようにインストールする。

wget http://download.virtualbox.org/virtualbox/4.1.14/Oracle_VM_VirtualBox_Extension_Pack-4.1.14-77440.vbox-extpack
VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.1.14-77440.vbox-extpack

ここまでインストールができれば、VirtualBox をローカルマシン上の X Windows システムから利用するには十分だが、WEB-UI を通してリモートから利用できるようにしたい場合には次のステップに進む必要がある。

phpVirtualBox のセットアップ前準備

phpVirtualBox はその名の通り php で書かれている。HTTPサーバーとPHP, PHP の SOAP 機能を利用するため、いかのようにパッケージマネージャ経由でインストールする。

yum install httpd php php-soap

インストールが完了したら、早速 phpVirtualBox をインストールしたいとこらだが、phpVirtualBox のためにユーザーを追加する。ここでは、仮に vbox とする。

sudo useradd -s /bin/bash -d /home/vbox vbox
sudo usermod -G vboxusers,cdrom vbox

サーバが物理的に DVD ドライブを持っていて利用したい場合には cdrom グループに参加する必要がある。また、VirtualBox で USB を利用したい場合には作成した vbox ユーザーを vboxusers グループに参加させる必要があるので参加する。ユーザーの作成が完了したら、次に VirtualBox を vbox ユーザーで設定する。

su vbox -c "VBoxManage setproperty websrvauthlibrary null"

設定が完了したら、次に /etc/default/virtualbox を作成して、以下のように編集する。

vim /etc/default/virtualbox
VBOXWEB_USER=vbox

この設定は VirtualBox の SOAP デーモンのための設定で、phpVirtualBox の設定ではないが、この設定がないと phpVirtualBox が正常に動作しない。この設定を保存して、SOAP デーモンを立てれば phpVirtualBox をセットアップするための準備は整う。まず、以下のように SOAP サービスを起動しよう。

sudo systemctl start vboxweb-service.service
sudo systemctl enable vboxweb-service.service

phpVirtualBox のセットアップ

ここまで来たら、もう設定は終わったも同然だ。まず、Google Code の phpVirtualBox のプロジェクトのページから zip アーカイブをダウンロードして、展開する。

su vbox
mkdir /home/vbox/src
cd /home/vbox/src
 
wget http://phpvirtualbox.googlecode.com/files/phpvirtualbox-4.1-7.zip
unzip phpvirtualbox-4.1.7
cp -avrp phpvirtualbox-4.1.7 ../html

次に、/home/vbox/html に展開された phpVirtualBox の設定を行う。/home/vbox/html に展開されている config.php-example をそのまま使うことができるので、以下のようにリネームしよう。

su vbox
cd /home/vbox/html
mv config.php-example config.php

これで、phpVirtualBox の準備は整った。あとは、Apache の設定をするだけだ!

Apahe の設定

まず、Apache の設定をする前に権限を変更しておく必要がある。なぜなら、/home/vbox/html には apache 権限でアクセスできないため、WEB サーバーが正常に動作しないからだ。まず、apache ユーザー権限を vbox グループに参加させよう。

sudo usermod -G vbox apache

これで apache ユーザーが vbox グループに参加したことになる。もともと、apache ユーザーが他にもグループに参加していることが多いので、もともと参加していたグループも忘れずに参加させておこう。これで、Apache の設定に移れるといいたいところだが、1点だけ権限を変更する必要がある。それは、/home/vbox へのグループアクセス権限だ。

sudo chmod g+x /home/vbox

これで Apache が /home/vbox にアクセスできる。/home/vbox/html は一般的な umask 値が設定されていれば 664 なので権限を変更する必要はない。SELinux が動作している場合はこの限りでないが、そんなことは知らない。そして、ついに Apache の設定だ。

sudo vim /etc/httpd/conf.d/vbox.conf
<VirtualHost *:80>
        ServerName vbox.go
        DocumentRoot /home/vbox/html
</VirtualHost>
 
<Directory "/home/vbox/html">
    Options Indexes FollowSymLinks
    Order allow,deny
    Allow from all
</Directory>

初期パスワードについて

user=admin, password=admin

個人用ツール
名前空間
変種
操作
案内
ツールボックス