概要
Mirantis OpenStack 8.0がVirtualBox上で手軽に試せそうだったので、実際に試してみました。
環境
以下のMacbook Proで試しています。
- Mac OSX El Capitan
- プロセッサ: Intel Core i7
- プロセッサ速度: 3.1GHz
- プロセッサの個数: 1
- プロセッサコア数: 2
- メモリ: 16GB
Supported Host Operating Systems and VirtualBox Versionsには、古いOS (Mac OS 10.7.5 (Lion)) やVirtualBoxのバージョンが記載されていますが、とりあえず最新でも確認はできました。
構築手順
基本的な手順は、Mirantisのページに記載されているQuickStart Guideに従って実施しています。
ただし、このガイドにはFuelを入れるところまでしか記載されておらず、それ以降はほとんどマニュアル等を見ずに実施したので、間違い等があるかもしれません。
事前準備
Prerequisitesに従って手順実行に必要な資材を用意します。
Oracle VirtualBoxとOracle VM VirtualBox Extension Packは、Homebrew caskを使ってインストールしました。
$ brew cask install virtualbox
$ brew cask install virtualbox-extension-pack
また、Download Mirantis OpenStackのページから"Mirantis OpenStack 8.0 ISO"と"VirtualBox Scripts"をダウンロードします。ダウンロードしたVirtualBoxスクリプトが入ったZIPファイルを適当なディレクトリに解凍後、ISOファイルを"virtualbox/iso/"ディレクトリに移動しておきます。
$ unzip vbox-scripts-8.0.zip
$ mv MirantisOpenStack-8.0.iso virtualbox/iso/
$ cd virtualbox/
Fuelマスターとスレーブの構築
Mirantis OpenStackでは、Fuelという管理ツールを使ってOpenStackをデプロイします。ダウンロードしたVirtualBoxスクリプトを使うことで、仮想ネットワーク、Fuelマスターノード、スレーブノードを簡単に構築できます。
構築用のスクリプトとして、launch.sh
, launch_8GB.sh
, launch_16GB.sh
の3種類があります。メモリ16GBあるので何も考えずにlaunch_16GB.sh
を実行すると、Fuelマスターノード用に1台、スレーブノード用に5台の合計6台のVMが起動してきてスペック的に辛いので、今回はスレーブ3台を起動するlaunch.sh
を使っています。デフォルトだとスレーブに割り当てられるメモリが少ないため、今回はスレーブにそれぞれ6GB/4GB/4GBを割り当てるように、config.sh
の168行目から170行目を以下のように修正しました。
150 if [ "$CONFIG_FOR" = "16GB" ]; then
151 vm_slave_memory_default=1536
152
153 vm_slave_memory_mb[1]=2048
154 vm_slave_memory_mb[2]=2048
155 vm_slave_memory_mb[3]=2048
156 vm_slave_memory_mb[4]=2048
157 vm_slave_memory_mb[5]=2048
158 elif [ "$CONFIG_FOR" = "8GB" ]; then
159 vm_slave_memory_default=1024
160
161 vm_slave_memory_mb[1]=1536
162 vm_slave_memory_mb[2]=1536
163 vm_slave_memory_mb[3]=1536
164 else
165 # Section for custom configuration
166 vm_slave_memory_default=1024
167
168 vm_slave_memory_mb[1]=6144
169 vm_slave_memory_mb[2]=4096
170 vm_slave_memory_mb[3]=4096
171 # vm_slave_memory_mb[1]=2048
172 # vm_slave_memory_mb[2]=1024
173 # vm_slave_memory_mb[3]=1024
174 fi
あとはsh launth.sh
を実行すれば、自分の環境では1時間弱くらいでFuelマスターノードとスレーブノードが構築されました。
ただし、本来であれば、(1) Fuelマスターノード構築、(2) ブートストラップイメージ作成、(3) Fuelスレーブノード構築となるようですが、(2)の完了を待たずにスレーブのVMが作成され、起動待ち状態のままスクリプトの実行が完了することがありました。その状態で後述のFuelダッシュボードにアクセスすると、以下のエラーメッセージが表示され、スレーブを自動検出できません。
There is no active bootstrap. Bootstrap image building is in progress.
Usually it takes 15-20 minutes. It depends on your internet connection
and hardware performance. Please reboot failed to discover nodes after
bootstrap image become available.
その場合には、30分くらい待つとブートストラップイメージが作成されるため、うまくいけば何もせずに勝手にスレーブがそのイメージから起動して自動検出されます。ただし、タイムアウトが発生して起動できなかったスレーブがある場合には、VirtualBoxから再起動することで自動検出されるようになります。
なお、VirtualBoxのGUIがVMごとに表示されますが、それが邪魔ならば、上記config.sh
のheadless=0
の値を1
にすることで表示されなくなると思います。
Fuelダッシュボードへのアクセス
構築完了後、コンソール上に表示された以下のメッセージに従いブラウザでhttp://10.20.0.2:8000/
にアクセスすると、Fuelダッシュボードが表示されます。
To access master node, please point your browser to:
http://10.20.0.2:8000/
The default username and password is admin:admin
Fuelプラグインのインストール
このままOpenStackを構築してもいいのですが、いくつかFuelプラグインを試したかったため、Fuelダッシュボードの"Plugins"から参照しているPlugins Catalogにアクセスして興味あるプラグインをダウンロードします。
今回は、Monitoringカテゴリーにある以下をインストールしています。
- ElasticSearch/Kibana Fuel Plugin
- InfluxDB/Grafana Fuel Plugin
- LMA Collector Fuel Plugin
- LMA Nagios Fuel Plugin
FuelマスターノードにSSHでログイン後 (デフォルトのユーザー名/パスワード: root
/r00tme
)、興味のあるプラグイン (RPM形式) をwget
等でダウンロードします 。
ダウンロード完了後、Fuelプラグインをインストールします。インストール方法は、各プラグインのドキュメントに記載されているのですが、基本的にはfuel plugins --install <RPM名>
コマンドで以下のようにインストールできます。
[root@fuel ~]# fuel plugins --install lma_infrastructure_alerting-0.9-0.9.0-1.noarch.rpm
読み込んだプラグイン:fastestmirror, priorities
lma_infrastructure_alerting-0.9-0.9.0-1.noarch.rpm を調べています: lma_infrastructure_alerting-0.9-0.9.0-1.noarch
lma_infrastructure_alerting-0.9-0.9.0-1.noarch.rpm をインストール済みとして設定しています
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ lma_infrastructure_alerting-0.9.noarch 0:0.9.0-1 を インストール
--> 依存性解決を終了しました。
依存性を解決しました
===================================================================================================================================================================================
Package アーキテクチャー バージョン リポジトリー 容量
===================================================================================================================================================================================
インストール中:
lma_infrastructure_alerting-0.9 noarch 0.9.0-1 /lma_infrastructure_alerting-0.9-0.9.0-1.noarch 21 M
トランザクションの要約
===================================================================================================================================================================================
インストール 1 パッケージ
合計容量: 21 M
インストール容量: 21 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
インストール中 : lma_infrastructure_alerting-0.9-0.9.0-1.noarch 1/1
検証中 : lma_infrastructure_alerting-0.9-0.9.0-1.noarch 1/1
インストール:
lma_infrastructure_alerting-0.9.noarch 0:0.9.0-1
完了しました!
Plugin lma_infrastructure_alerting-0.9-0.9.0-1.noarch.rpm was successfully installed.
fuel plugins
コマンドでインストールされたプラグインを確認できます。
[root@fuel ~]# fuel plugins
id | name | version | package_version
---|-----------------------------|---------|----------------
1 | elasticsearch_kibana | 0.9.0 | 4.0.0
2 | influxdb_grafana | 0.9.0 | 4.0.0
3 | lma_collector | 0.9.0 | 4.0.0
4 | lma_infrastructure_alerting | 0.9.0 | 4.0.0
OpenStackの構築
Fuelダッシュボードにアクセスすると、Equipmentから3台のノードが検出されていることを確認できます。あとで分かりやすくするため、スレーブノードの名前を変更しています。
OpenStackを構築するには、Enviromentsページの"New OpenStack Environment"をクリックしてウィザードを入力していくことでOpenStack環境を作成します。基本、名前と必要に応じてサービスを追加するくらいで、それ以外はデフォルトのままにしています。
環境作成後、"Settings"のタブから以下のみを設定しています。
- Security:
- Public Key: ノードに鍵でログインできるようにするため、
ssh-keygen -t rsa -f id_rsa
コマンドで生成した公開鍵 (id_rsa.pub
) の内容をコピー&ペースト
- Public Key: ノードに鍵でログインできるようにするため、
- Other:
- インストールした各Fuelプラグインをチェックしないと有効にならないようなのでチェック
- 必須項目である各種パスワードの入力
- emailによる通知をチェックを外す
次に"Nodes"タブでノードを追加します。とりあえず今回は以下のように各ノードにロールを割り当てています。なお、スクリーンショット上は、OSを選んでいないのですが、最終的には選んでいます。OS選択の有無がどのように影響するのかはよく分かっていません。
あとは、"Dashboard"タブから変更を適用することにより、実際にOpenStack環境の構築が始まります。しばらく待つと、デプロイが完了し、FuelダッシュボードからHorizonやKibana, Grafana等へのリンクが表示されます。
ただし、自分の環境では、Horizon以外のリンクを押してもちゃんと動作しませんでした。もう少し調べてみようかと思います。
おわりに
とりあえずまだ構築しただけなので、いろいろと触ってみて追記していきたいと思います。