hagistack で Ubuntu 13.04 に OpenStack Grizzly を入れる

スポンサーリンク

以前の記事で、DevStack を使って OpenStack 環境を構築したが、再起動すると設定が消えてしまうなど、あまり使い勝手が良いとは言えなかった。そもそも DevStack はその名の通り開発者向けなので、常用には向かない。

他に良い手段がないか探していたところ、hagistack というのを見つけたので、試してみることにする。今回はコントローラとコンピュートノードを1つのマシンで兼ねる、オールインワン構成にする。

スポンサーリンク

Ubuntu Server のインストール

今回も適当なマシンを用意して、Ubuntu Server 13.04 (ubuntu-13.04-server-amd64.iso) をクリーンインストールする。ポイントは以下の通り。

  • IP アドレスを固定にする
  • OpenSSH server をインストールする (必須ではない)
  • LVM で “cinder-volumes” という名前の Volume Group を用意する

ディスクを1つで済ませる場合は、下記のような感じでパーティションを設定する。Ubunutu のバグなのか、1つめの VG の容量表示がおかしいので注意する。

ディスクのパーティショニング

ディスクのパーティショニング

LVM 設定

LVM 設定

インストール

hagistack のドキュメント通りにインストールする。

まず apt-get で git をインストールする。

$ sudo apt-get -y install git

適当なディレクトリを作り、GitHub から hagistack を clone する。

$ mkdir ~/repos
$ cd ~/repos
$ git clone https://github.com/hagix9/hagistack
$ cd hagistack/ubuntu13.04

設定ファイルを作成する。

$ vi stack.env
STACK_USER=<UNIX ユーザ名>
NOVA_CONTOLLER_IP=<ホストの IP アドレス>
NOVA_CONTOLLER_HOSTNAME=<ホスト名>
NOVA_COMPUTE_IP=<ホストの IP アドレス>
FLOAT_IP_RANGE=<フローティング IP アドレスのレンジ>

フローティング IP アドレスのレンジは、ホストが属するネットワークから適当な範囲を割り当てる。CONTOLLER の綴りは元のスクリプトの通り。

そしてスクリプトを実行して、OpenStack をインストールする。

$ bash ./hagistack_controller.sh

ログイン

インストール後、以下の URL にアクセスすれば、OpenStack の Web UI (horizon) のログイン画面が表示される。

http://<ホストの IP アドレス>/horizon/

ユーザ名: admin, パスワード: secrete でログインできる。

ログイン画面

ログイン画面

インスタンスの生成

早速 horizon でインスタンス (仮想マシン) を生成してみる。

「プロジェクト -> インスタンス -> イメージの起動」からインスタンスを生成する。しかし張り切って [起動] ボタンを押したものの、Error になった。

状態: Error

状態: Error

先輩のアドバイスから、ログのエラーメッセージを調査してみる。

$ grep -in error /var/log/nova/*

すると、nova-network.log から以下のようなエラーメッセージが見つかった。

Cannot find device "eth0"

たしかに ifconfig -a してみると、”eth0″ ではなく “p5p1” となっていた。nova.conf を下記のように変更し、OS を再起動したところ、無事インスタンスを生成できるようになった。

$ sudo diff /etc/nova/nova.conf.bak /etc/nova/nova.conf
30c30
< flat_interface=eth0
---
> flat_interface=p5p1

その後、フローティング IP アドレスを割り当てたにも関わらず外部から通信できずにつまづいたが、セキュリティグループを適切に設定したら無事通信できた。

なお、例えばインスタンスの一覧を表示したいときなど、コマンドラインで nova コマンドを実行する場合は、次のようにして事前に keystonerc の環境変数を読み込んでおく。

$ . ~/keystonerc
$ nova list

しばらく使ってみたが、今のところ他には特に問題なく動いている。

hagistack 作者の萩原さんに、この場を借りてお礼申し上げます。

参考ページ

コメント

  1. hagix9 より:

    CONTOLLERのスペル。。
    ずっと知らなかったのでそのうち直させてください。
    あとコントローラのほうのスクリプトを実行すればコンピュートのほうは実行しなくてもオールインワンであれば大丈夫です。

  2. sho より:

    > コンピュートのほうは実行しなくても
    ご指摘ありがとうございます。修正しました。

タイトルとURLをコピーしました