猫も杓子もクラウドという世相において,
「OpenStackを簡単に試せる」という幻想
「UbuntuにOpenStackを簡単にデプロイする」
しかしながら
- ※1
- 今回はVirtualBoxを引き合いに出していますが,
AWS EC2やその他のKVMが使えないリソース上でも同じ手順で実現可能です。
VirtualBox上の仮想マシンではまだKVMが使えません。そこでOpenStack Installerではなく
DevStackそのものはその名のとおり,
DevStackのインストール
DevStackはUbuntuだけでなくいろいろなLinuxディストリビューションをサポートしています。今回はUbuntu 14.
- ※2
- とはいえ,
2GBのRAMと20GBのストレージぐらいでもなんとかなることはなります。
インストールしたUbuntuゲストにはホストからsshログインできたほうがこの先なにかと便利です。そこでゲストにopenssh-serverパッケージをインストールしておいてください。またホストからゲストへアクセスするために仮想マシンの設定も必要です。VirtualBoxの設定から仮想マシンにホストオンリーアダプターを追加する方法もありますが,
VirtualBoxのマネージャーウィンドウから対象の仮想マシンを選択し,
ホストから次のようにゲストにssh接続できるか確認してください。
$ ssh -o UserKnownHostsFile=/dev/null -p 2022 127.0.0.1
Ubuntuサーバーの仮想マシンを用意できたら,
$ sudo apt-get install git $ git clone -b stable/liberty https://git.openstack.org/openstack-dev/devstack $ cd devstack
上記ではOpenStackの10月にリリースされたばかりであるLibertyを指定しています。ちなみにここでstable/
- ※3
- local.
confの中で 「コンポーネント名_BRANCH」 変数を設定すると, コンポーネントごとに使用するブランチを変更することも可能です。詳しくはstackrcファイルの中を参照してください。
次に設定ファイルであるlocal.
[[local|localrc]]
ADMIN_PASSWORD=devstack
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD
SERVICE_TOKEN=tokentoken
インスタンスを起動する際に利用するツールはDEFAULT_
(以下のような形になるよう,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のマネージャーウィンドウから対象の仮想マシンを選択し,
6080番ポートは後ほど仮想マシンのコンソールにアクセスするために設定しています。さて,
DevStackでデプロイされるコンポーネントはlocal.
なお,
$ screen -x devstack
サービスごとにウィンドウが展開されていますので,