この記事は、CloudStack Advent Calendar 2015 12月3日用のエントリです。
別のネタを考えていましたが、ちょうどApache CloudStack 4.6が出てきたので変更します。
Apache CloudStack 4.6が出ました
巷ではOpenStackの話題でにぎわっている昨今ですが、ひっそりとApache CloudStack 4.6がリリースされました。
いくつか機能改善が行われているのですが、このエントリではDocker Hubでのイメージ提供について触れたいと思います。
Apache CloudStack 4.6は、従来からのソースやバイナリでの提供以外に、Dockerイメージとしての提供が行われています。今までも有志によるCloudStackイメージがありましたが、こちらは公式のリポジトリです。ここから簡単に管理サーバーやシミュレーターのイメージをpullしたり、イメージの使い方を確認したりできます。
CloudStack目指すところは「All-in-one」あるいは「Turn-key」(ターンキー=鍵を回せばすぐ使える)なPrivate IaaSなので、Dockerで管理サーバーをサクッと建てられてしまうというのは良い方向性ですね。
やってみた
しばらく使ってなかったCentOSがVMware Workstation上にあったので、とりあえずdocker pullしてみます。今回はシミュレータ用のイメージを使っています。
終わったら実行してみます。
ちなみにイメージ名を指定する際に、cloudstack/simulator:4.6.0 のようにイメージ名の後にタグを指定すると、そのバージョンの環境を使用できます。使用可能なタグの一覧は Docker Hubで確認できます。
プロンプトが返ってきても、CloudStackのサービスが上がるまでしばらく掛かるので待ちます。少し経ったら、ブラウザでアクセスしてみましょう…はい動きましたー。
拍子抜けするぐらい簡単です。
ちょっとだけ、つまづきながら
Simulatorの場合、あたかもBasic ZoneやAdvanced Zoneがあるかのように見せるためのスクリプトがイメージ内に用意されているので、それを流します。
起動したdockerに入ってコマンドをたたく時は
docker exec -ti cloudstack /bin/bash
でコンテナのbashを使えます。
下記はAdvanced Zoneの展開をしています。
ちなみに、これを実行しようとした際に、3つほどエラーに遭遇しました。
ImportError: No module named marvin
に対しては
python /root/tools/marvin/setup.py install
ImportError: No module named Crypto.PublicKey
に対しては
pip install pycrypto
ImportError: No module named ecdsa
に対しては
pip install ecdsa
でエラー解消しました。
できた!
完了すると、Simulator用のダミーインフラが出来上がります。
このお手軽さ、そして壊しても困らない環境というのはいいですね。
「こんな感じのインフラいいなぁ」と思った方はシミュレーターではなく、次は本物にぜひチャレンジを!