OpenStack Mitakaを構築(Horizon編)


OpenStackの構築といえば、DevStackや、Packstackなどを使う方が多いかもしれません。
Openstackは、その他様々な構築ツールが発表されています。
が、ツールを使わず、私のように一つ一つコンポーネントを導入している奇特な方は少ないのではないでしょうか。

ということで、今回はOpenStack Mitakaに、GUIダッシュボード機能を提供する、Horizonを導入します。

実行環境は以下のとおりです。
■Ubuntu 16.04

Horizonのインストール

早速、Horizonをインストールします。

$ sudo apt-get install -y openstack-dashboard

設定ファイルの編集

ファイルを編集する前に、ファイルのバックアップを取得します。

$ sudo cp /etc/openstack-dashboard/local_settings.py /etc/openstack-dashboard/local_settings.py.org

それでは、ファイルを編集していきます。

$ sudo vi /etc/openstack-dashboard/local_settings.py

local_settings.py
...
OPENSTACK_API_VERSIONS = {
    "data-processing": 1.1,
    "identity": 3,
    "volume": 2,
    "compute": 2,
}
...
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True
...
OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = 'default'
...
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': 'controller:11211',
    },
}
...
OPENSTACK_HOST = "自身のOpenStackホスト名を指定"   "192.168.2.4"
OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST
OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user"
...
TIME_ZONE = "Asia/Tokyo"
...
ALLOWED_HOSTS = ['*', ]
...

Webサービスの設定を再読み込みます。

$ sudo systemctl reload apache2

$ sudo systemctl status apache2

ここまでできたら、以下のURLにアクセスできるはず。
http://<OpenStackが構築されているホストのIPアドレス>/horizon

と・こ・ろ・が!
とある資料では、上記のみの手順となっていたのですが、
これだけでは、URLにアクセスしても、タイムアウトエラー(500エラーだったかな。。。)が発生し、
Horizonにはアクセスすることができません。

エラーが発生したら

色んなサイトを漁りに漁り。
ようやく、ヒントが見つかりました。
英語ですが、以下のサイトが参考になりました。
参考サイト

どうやら、以下のファイルを編集するようです。

$ cd /etc/apache2/conf-enabled

$ sudo vi openstack-dashboard.conf

openstack-dashboard.conf
WSGIProcessGroup horizon   ←元々記載あり
WSGIApplicationGroup %{GLOBAL}  ←この記載を追加

WSGIApplicationGroupの1行を追加したら、再度、Webサービスの再読み込みをします。

$ sudo systemctl reload apache2

$ sudo systemctl status apache2

これで、改めて以下のURLにアクセスします。
http://<OpenStackが構築されているホストのIPアドレス>/horizon

無事、Horizonが起動しました。

※実際にログインするには、認証用のコンポーネントである、Keystoneを導入している必要があります。