CloudStack on Eucalyptus / CloudStack Advent Calendar 2014 10日目

CloudStacker の皆さんこんにちは、日本 Eucalyptus ユーザ会です。

これは CloudStack Advent Calendar 2014 の10日目のエントリです。

昨日は林さんの「データから読むCloudStack -CloudStack Advent Calendar 2014-」という投稿でしたが、まぁ当ユーザ会が宣伝するまでもなく林さんのエントリは皆さんお読みでしょうから、さくっと進めたいと思います。はいそこ「妬んでるぅ」とか余計なこと言わなくていいですよ。身の程をわきまえていると言ってください。

さて、今回も当ユーザ会のマスコットである「ぷた」と「す〜」にアシスタントしてもらいますが、彼らとの絡みは無いかもしれません。

ということで、早速 Eucalyptus の上に CloudStack を乗せてみました。(ドヤァ

…すみません、ぷたさんから「そのネタ、誰も笑ってないよ」って冷静に言われちゃいました。あと、す〜さんからも「大削会長の本を前編しか買ってないのバレるよ?」って…。本当にごめんなさい。

しょうがないからインスタンス上で入れてみる

参考にしたのはこの Quick Installation Guide for CentOS です。

ごにょごにょと環境整備をし、おもむろに

# yum -y install cloudstack-management

って実行したんですが、

cloudstack/filelists                                                                              | 107 kB     00:00     
http://cloudstack.apt-get.eu/rhel/4.4/repodata/filelists.xml.gz: [Errno -1] Metadata file does not match checksum
Trying other mirror.
Error: failure: repodata/filelists.xml.gz from cloudstack: [Errno 256] No more mirrors to try.
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

ほっほ〜、これが CloudStack のやり方ですか…なかなかやりますね。仕方ありませんね、ここで諦めたら何を言われるかわかりませんので、悪足掻きをしますよ。

リポジトリをよく見ると、12/10 に 4.4.2 のパッケージが追加されているじゃないですか?きっとコイツのせいでメタデータファイルが腐ってるんだろう?と思い、とりあえず 4.4.1 を指定してインストールしてみようと…

# yum -y install cloudstack-management-4.4.1-NONOSS_3.el6
cloudstack/filelists                                                                              | 107 kB     00:04     
http://cloudstack.apt-get.eu/rhel/4.4/repodata/filelists.xml.gz: [Errno -1] Metadata file does not match checksum
Trying other mirror.
Error: failure: repodata/filelists.xml.gz from cloudstack: [Errno 256] No more mirrors to try.

ふーん、「Eucalyptoid ごときにインストールできるものは無ぇ」と、そーいうことでしょうか?なるほど、なるほど。

というのは冗談で、repomd.xml 内の値が間違ってるということなのですが、

1
2
3
4
5
6
  <data type="filelists">
    <location xml:base="http://cloudstack.apt-get.eu/rhel/4.4" href="repodata/filelists.xml.gz"/>
    <checksum type="sha">b7a511b59dad16233d1a4ed3450702f80fec87dc</checksum>
    <timestamp>1418215917</timestamp>
    <open-checksum type="sha">1cee3b59a6434efd2a978a05fa69ab3517df25e1</open-checksum>
  </data>

に対して実ファイルはと言うと…

# sha1sum filelists.xml.gz 
b7a511b59dad16233d1a4ed3450702f80fec87dc  filelists.xml.gz

うーん?何も間違っていないような気がするんだけど…

ハイ!、yum clean all しろっていう話でした。ほんと初歩的なことすぎて辛い…今頃全 CloudStacker が「m9(^Д^) プギャー」って言ってるのが目に浮びます。ほんと勘弁してくらさい。ローカルにミラーを作り始めた当ユーザ会の純真な心を温めてください。

ってことで続けます。

# cloudstack-setup-databases cloud:password@localhost --deploy-as=root
Mysql user name:cloud                                                           [ OK ]
Mysql user password:******                                                      [ OK ]
Mysql server ip:localhost                                                       [ OK ]
Mysql server port:3306                                                          [ OK ]
Mysql root user name:root                                                       [ OK ]
Mysql root user password:******                                                 [ OK ]
Checking Cloud database files ...                                               [ OK ]
Checking local machine hostname ...                                             

We apologize for below error:
***************************************************************
The host name of this computer does not resolve to an IP address.
Please use your operating system's network setup tools to fix this ('hostname --fqdn' hostname: 不明なホスト
).

***************************************************************
Please run:

    cloud-setup-database -h

for full help

おやまぁ、一難去ってまた一難です。そーいや、hostname -f の結果をちゃんと確認してない。これはまさしく、できない子がよくやるパターンのひとつ「ドキュメントを読み飛ばす」をやりました。なので、ちゃんと hostname -f の結果が返るようにし、cloud-setup-database -h を叩きます。

# cloud-setup-database -h
-bash: cloud-setup-database: コマンドが見つかりません

もーいや、要らない、そーゆー小ネタ要らない。

# cloudstack-setup-databases cloud:password@localhost --deploy-as=root
Mysql user name:cloud                                                           [ OK ]
Mysql user password:******                                                      [ OK ]
Mysql server ip:localhost                                                       [ OK ]
Mysql server port:3306                                                          [ OK ]
Mysql root user name:root                                                       [ OK ]
Mysql root user password:******                                                 [ OK ]
Checking Cloud database files ...                                               [ OK ]
Checking local machine hostname ...                                             [ OK ]
Checking SELinux setup ...                                                      [ OK ]
Detected local IP address as 192.168.122.248, will use as cluster management server node IP[ OK ]
Preparing /etc/cloudstack/management/db.properties                              [ OK ]
Applying /usr/share/cloudstack-management/setup/create-database.sql             [ OK ]
Applying /usr/share/cloudstack-management/setup/create-schema.sql               [ OK ]
Applying /usr/share/cloudstack-management/setup/create-database-premium.sql     [ OK ]
Applying /usr/share/cloudstack-management/setup/create-schema-premium.sql       [ OK ]
Applying /usr/share/cloudstack-management/setup/server-setup.sql                [ OK ]
Applying /usr/share/cloudstack-management/setup/templates.sql                   [ OK ]
Applying /usr/share/cloudstack-bridge/setup/cloudbridge_db.sql                  [ OK ]
Applying /usr/share/cloudstack-bridge/setup/cloudbridge_schema.sql              [ OK ]
Applying /usr/share/cloudstack-bridge/setup/cloudbridge_multipart.sql           [ OK ]
Applying /usr/share/cloudstack-bridge/setup/cloudbridge_index.sql               [ OK ]
Applying /usr/share/cloudstack-bridge/setup/cloudbridge_multipart_alter.sql     [ OK ]
Applying /usr/share/cloudstack-bridge/setup/cloudbridge_bucketpolicy.sql        [ OK ]
Applying /usr/share/cloudstack-bridge/setup/cloudbridge_policy_alter.sql        [ OK ]
Applying /usr/share/cloudstack-bridge/setup/cloudbridge_offering.sql            [ OK ]
Applying /usr/share/cloudstack-bridge/setup/cloudbridge_offering_alter.sql      [ OK ]
Processing encryption ...                                                       [ OK ]
Finalizing setup ...                                                            [ OK ]

CloudStack has successfully initialized database, you can check your database configuration in /etc/cloudstack/management/db.properties

今度はうまく行ったようです。

が、ここでタイムアップです。12/10 24:00 になりそうです。当ユーザ会は CloudStack on Eucalyptus に継続して挑戦していきたいと思いますので、この続きの結果が出ましたら当エントリを更新したいと考えております。


明日のエントリは @opt_Hohenheim さんの「heat on cloudstack」です。なんか当ユーザ会以上にチャレンジングですね。楽しみです。では。