Ubuntu Weekly Recipe

第398回 VirtualBoxでDevStackを利用する

この記事を読むのに必要な時間:およそ 4 分

猫も杓子もクラウドという世相において,クラウドプラットフォームのソフトウェアである「OpenStack」は 非常に重要な位置を占めています。おりしも先月末には国際的なカンファレンスである「OpenStack Summit Tokyo 2015」が開催されました。 これを機に読者の中にも「ちょっと使ってみよう」と思われた方や「ちょっと使ってみろ」と上司に言われた方もいることでしょう。今回はOpenStackを簡単に試せる「DevStack」をVirtualBox上のUbuntuにインストールしてみます。

「OpenStackを簡単に試せる」という幻想

「UbuntuにOpenStackを簡単にデプロイする」と言えば,第341回でも紹介したUbuntu OpenStack Installerが存在します。こちらはUbuntu上でKVM/LXC/Juju/MAASを駆使することで,シングルノードやマルチノードのOpenStack Compute環境を構築するツールです。紹介した頃はまだリリースされたばかりのツールでしたが,その後も活発的に開発が続いています。Ubuntuがインストールされた十分に高性能なマシンがある場合は,この方法を使ってインストールし,OpenStackのそれ以外のコンポーネントはJuju経由でセットアップしていくという手もあるでしょう。

しかしながら「ちょっと使ってみる」という目的であれば,上記のようなリソースを用意できないこともあるかもしれません。特に普段はWindowsを使っていて,UbuntuはVirtualBox上だけというケースも多々あるものと思います。そこで今回は,VirtualBox上に構築する方法を考えてみることにします※1)⁠

※1
今回はVirtualBoxを引き合いに出していますが,AWS EC2やその他のKVMが使えないリソース上でも同じ手順で実現可能です。

VirtualBox上の仮想マシンではまだKVMが使えません。そこでOpenStack InstallerではなくDevStack「All-In-One Single VM」によるインストールを行います。これは,OpenStackの諸々を一つの仮想マシンの中で動かすモードで,必要に応じてComputeの各インスタンスをQEMUで動かすため,CPU仮想化支援機構がない環境でもOpenStackを試すことができるのです。もちろんKVMを使えない環境ではソフトウェアエミュレーションとなるため,インスタンスの性能はかなり落ちます。

DevStackそのものはその名のとおり,OpenStackの開発のためにその環境を簡単にデプロイするためのツールです。そのためプロダクション環境での利用には向いていません。All-In-One Single VM以外にもいろいろなセットアップ方法が用意はされていますが,もし「ちょっと使ってみる」ではなく本格的に利用する目的であれば,OpenStack Installerといった他のデプロイツールを使うようにしてください。

DevStackのインストール

DevStackはUbuntuだけでなくいろいろなLinuxディストリビューションをサポートしています。今回はUbuntu 14.04.3 LTSを使うことにしましょう。デスクトップ版でもサーバー版でもかまいませんので,あらかじめVirtualBoxにUbuntu 14.04.3 LTSをインストールした仮想マシンを用意しておいてください。仮想マシンには4GB以上のRAMと50GB程度のストレージを割り当てられることが望ましいです※2)⁠

※2
とはいえ,2GBのRAMと20GBのストレージぐらいでもなんとかなることはなります。

インストールしたUbuntuゲストにはホストからsshログインできたほうがこの先なにかと便利です。そこでゲストにopenssh-serverパッケージをインストールしておいてください。またホストからゲストへアクセスするために仮想マシンの設定も必要です。VirtualBoxの設定から仮想マシンにホストオンリーアダプターを追加する方法もありますが,SSH程度であればポートフォワーディングするという手もあります。今回は後者のみ説明します。

VirtualBoxのマネージャーウィンドウから対象の仮想マシンを選択し,設定>ネットワーク>ポートフォワーディングの順にメニューをたどってください。仮想マシンは起動中の状態でもかまいません。あとは設定画面でホストの2022ポートをゲストの22ポートに転送しておきましょう。IPアドレスについては空欄のままでも大丈夫です。

図1 SSHのポートフォワード設定

画像

ホストから次のようにゲストにssh接続できるか確認してください。

$ ssh -o UserKnownHostsFile=/dev/null -p 2022 127.0.0.1

Ubuntuサーバーの仮想マシンを用意できたら,実際にDevStackをインストールします。インストールの手順自体は簡単です。

$ sudo apt-get install git
$ git clone -b stable/liberty https://git.openstack.org/openstack-dev/devstack
$ cd devstack

上記ではOpenStackの10月にリリースされたばかりであるLibertyを指定しています。ちなみにここでstable/libertyブランチの代わりにmasterブランチを使うと,OpenStackの開発版がインストールされることになります※3)⁠

※3
local.confの中で「コンポーネント名_BRANCH」変数を設定すると,コンポーネントごとに使用するブランチを変更することも可能です。詳しくはstackrcファイルの中を参照してください。

次に設定ファイルであるlocal.confを編集します。最低限必要なのは,各サービスのパスワードを個別に設定することだけです。

[[local|localrc]]
ADMIN_PASSWORD=devstack
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD
SERVICE_TOKEN=tokentoken

インスタンスを起動する際に利用するツールはDEFAULT_VIRT_DRIVERやLIBVIRT_TYPE変数で設定します。何も設定していない場合はlibvirtとkvmの組み合わせを使用します。さらにVirtualBoxのようなkvmが使えない(/dev/kvmが存在しない)環境では自動的にqemuにフォールバックします。また,インスタンスのコンソール上でlibvirtと日本語レイアウトのキーボードを組み合わせて使う場合,NovaのVNCの設定が必要です。次のようにvnc_keymapオプションを設定するコードをlib/novaに追加しましょう。

(以下のような形になるよう,vnc_keymapの行を追加する)
iniset $NOVA_CONF DEFAULT novncproxy_host "$NOVA_SERVICE_LISTEN_ADDRESS"
iniset $NOVA_CONF DEFAULT xvpvncproxy_host "$NOVA_SERVICE_LISTEN_ADDRESS"
iniset $NOVA_CONF DEFAULT vnc_keymap "ja"

最後にデプロイスクリプトを実行しましょう。表示されるログからGitリポジトリからのクローンやパッケージのインストールがいろいろと動いていることがわかるはずです。環境によりますがデプロイ完了まで30分弱かかります。

$ ./stack.sh
(前略)
This is your host IP address: 10.0.2.15
This is your host IPv6 address: ::1
Horizon is now available at http://10.0.2.15/dashboard
Keystone is serving at http://10.0.2.15:5000/
The default users are: admin and demo
The password: devstack
2015-11-15 10:24:17.368 | stack.sh completed in 1611 seconds.

HorizonのURLが表示されるのでそこにアクセスしましょう。といっても今回ゲストはNAT設定になっています。そこで仮想マシンにSSHと同じように80ポートへのポートフォワードを設定します。VirtualBoxのマネージャーウィンドウから対象の仮想マシンを選択し,設定,ネットワーク,ポートフォワーディングの順にメニューをたどって設定してください。

図2 HTTPとコンソール用のポートフォワード設定

画像

6080番ポートは後ほど仮想マシンのコンソールにアクセスするために設定しています。さて,ホスト上のブラウザから「http://localhost:2080」にアクセスしてみましょう。Horizonのログイン画面が表示されたら,ユーザー名「admin」⁠パスワード「devstack」でログインしてください。

図3 Ubuntuテーマが適用されていないOpenStack Horizonのログイン画面

画像

図4 ログインしたらシステムの概要が表示される

画像

DevStackでデプロイされるコンポーネントはlocal.confもしくはstackrcにあるENABLED_SERVICES変数で変更できます。特に指定しなければCompute(Nova)⁠Identicy(Keystone)⁠Block Storage(Cinder)⁠Image Service(Glance)あたりが導入されます。

なお,起動したサービスのログは,GNU screenのウィンドウとして展開されています。状況を確認したい場合はDevStackをインストールしたマシン上で次のコマンドを実行してください。

$ screen -x devstack

サービスごとにウィンドウが展開されていますので,⁠Ctrl-a」のあとにpキーやnキーでウィンドウをたどっていくとログが表示されることでしょう。screenを抜けるには(デタッチするには)⁠Ctrl-a」のあとにdキーを入力します。

著者プロフィール

柴田充也(しばたみつや)

Ubuntu Japanese Team Member株式会社 創夢所属。数年前にLaunchpad上でStellariumの翻訳をしたことがきっかけで,Ubuntuの翻訳にも関わるようになりました。

コメント

コメントの記入