Cent OS 6.5にRDO All-in-oneを導入。

# はじめに #
前回はOpenStackのなんとやらをひと通り触れたので、今回は早速OpenStackディストリビューションの一つであるRDOをサクッと入れてみたいと思います。

# OpenStackディストリビューション #
Linuxと同じようにOpenStackにもいくつかのディストリビューションがあります。
多分以下の3つを知っておけば十分かと思います。

- **RedHat OpenStack (RDO)** 
    RedHatのディストリビューション。略称RDOがRedHat Distribution for OpenStackかと思いきや、
    
    >"RDO is a **community** of people using and deploying OpenStack on Red Hat and Red Hat-based platforms."<
    
    とあるようにRDOはコミュニティらしい。今回はこれを触っていきます。
    
    [RDO](http://openstack.redhat.com/) ― 本家サイト

- **Ubuntu OpenStack**
    UbuntuのディストリビュータであるCanonicalのOpenStack。
    RDOでは内部でPuppetを使っているらしいが、こちらはjujuという構成管理ツールを使うらしい。
    あと最近のUbuntu Serverにはこいつがすでに入っているらしいので、RDOとの比較を兼ねて後で試したいと思います。
        
    [Ubuntu OpenStack](http://www.ubuntu.com/cloud/ubuntu-openstack/) ― 本家サイト
    
- **Devstack**
    開発者向けの最新OpenStackインストールツール。ディストリビューションではないですが、Devstackを使って楽チンインストールができるという点で、上記ディストリビューションみたいな感があるということで入れてます。
    ( 噂では楽チンじゃないという声もありますが... )
    
    [Devstack](http://devstack.org/) ― 本家サイト

# Let's Install OpenStack #
では早速RDOを使ってOpenStack環境をAll-in-one構成でサクッと入れてみたいと思います。

## 環境確認 ##
[RDO](http://openstack.redhat.com/)ページを見たところ、RDO All-in-oneの動作要件は

- **OS**    : RedHat Enterprise Linux 6.5~, Fedora 20~, CentOS, Scientific Linux

- **HW**    : 2GBメモリ以上、仮想化に対応したCPU、最低1つのNIC

- **その他**    : インターネットにつながること

とのことです。今回はVMware Playerを使って下記の構成にしました。

- CentOS 6.5, 2core-CPU, 4GB memory, 200GB HDD, 1 NIC(bridge-mode)

## トライ ##
ではインストールしていきます。手順はRDOの[Quickstart](http://jp-redhat.com/openstack/rdo/)をほぼそのまま実行してます。

```bash:RDOリリース指定
yum install -y http://repos.fedorapeople.org/repos/openstack/openstack-icehouse/rdo-release-icehouse-3.noarch.rpm
```

今回は最新のIcehouseリリースパッケージでインストールします。ここは一瞬で終わります。
その他のバージョンでやる場合は、[ここ](http://repos.fedorapeople.org/repos/openstack/)から適当なものを探せばいいでしょう。

```bash:packstack取得
yum install -y openstack-packstack
```

いくつかのパッケージが取得されます。それほど時間はかかりません。

```bash:packstack実行
packstack --allinone
```

これで実際にOpenStackの各種パッケージがインストールされます。割と時間がかかりますが適当に待ってください。
あと、最初にインストールしようとするノードのrootパスを聞かれるので正直に答えましょう。
packstackではOpenStackの構成にあたり、内部でPuppetを用いますがその際に使用するSSH用パスワードを聞いてきます。

(そのうちPuppetの勉強もかねてここの内部挙動を調べたいですねー)

```bash
 * To access the OpenStack Dashboard browse to http://192.168.11.2/dashboard .
Please, find your login credentials stored in the keystonerc_admin in your home directory.
```

インストールが終わると後ろのほうにこんな感じのメッセージが出てくるので、/root/keystonerc_adminを覗いてDashboardのパスワードを確認しましょう。

# Let's Access OpenStack #
それでは晴れてOpenStack RDO All-in-oneの導入ができたので早速アクセスしましょう。先ほどのホストの見えるところからであれば、`http://<ホスト名>/dashboard`でアクセスできます。

![WS000005.JPG](https://qiita-image-store.s3.amazonaws.com/0/45253/69388c71-3138-a815-5222-7f23ed192b94.jpeg)

keystonerc_adminで確認したadminパスワードを入力してログインしましょう。

![WS000006.JPG](https://qiita-image-store.s3.amazonaws.com/0/45253/959af7ee-da2b-15b5-3460-bf7244c18824.jpeg)

ログインしてみたらこんな感じになってます。普通に日本語化されてますけど設定はどこに...？
こちらは管理画面なので左側に

- システムパネル
    - 概要
    - リソース使用状況
    - ハイパーバイザ
    - フレーバー
    - イメージ
    - ネットワーク
    - ...
- 認証パネル
    - プロジェクト
    - ユーザー

が並びます。一方で、ユーザが触るであろうプロジェクト画面はこんな感じ。

![WS000007.JPG](https://qiita-image-store.s3.amazonaws.com/0/45253/7010a6f8-2ef7-29fd-cdb7-f45be5005c4c.jpeg)

- コンピュート
    - 概要
    - インスタンス
    - ボリューム
    - イメージ
    - アクセスとセキュリティ
- ネットワーク
- オブジェクトストア

ここの概要で見える利用可能リソース概要の総量がどうみてもOpenStackを動かしてるマシンのリソースより多いんですが、どういうことなんでしょうか...。

とりあえず今回はこの辺で。目的だったAll-in-oneは達成できたのでよしとします。

(本当はノリノリでSwiftに置いたISOイメージからLinuxインスタンス作ろうと思ってましたが、さっそくうまく動かないので動きを止めました)

# 次回 #
All-in-oneの構成ができたので、次回以降で下記に取り組んでいきます。

## ノード追加 ##
今回はAll-in-oneなので1台で擬似クラスタを構成していきますが、コンピュートノードとストレージノードをそれぞれ追加してクラスタの増強を試したいと思います。

## 仮想マシンインスタンス作成 ##
今回は環境を作っただけなので、使わないと意味がないですから実際に使ってみます。
フレーバーも今はデフォルトしかありませんが、色々試してみます。

# その他 #

## ハマり？ ##
ハマり、というほどではないですが同じ手順を **Fedora 20** でやったところ下記で詰まったので一応。

```bash
packstack --allinone
...
    Failed handling answer file: Given host does not listen on port 22: 192.168.0.100
...
```

packstackの実行時に上記のエラーメッセージが出てインストールできませんでした。少し考えれば分かることなのですが、22番ポート、SSHが上がってないだけの話でした。FedoraってデフォルトではSSH動いてくれないんですね...。