※これ以降少々愚痴が入っています。
Horizonのリダイレクト
Ubuntu 12.04 LTSとCloud Archiveパッケージで構築したOpenStack環境で、OpenStack Dashboard(Horizon)にアクセスするURLはhttp://ServerIP/horizonでアクセスできるんですが、これ、http://ServerIP/でアクセスしたいですよね。やっぱり。
その場合の設定はどこなのか色々探してみたのですが、公式ドキュメントを穴が空くほど見ても方法が見つからず。別の方向から方法を探ったところ、そういえばApacheの設定で何とかなるじゃんということがわかりました。
# vi /etc/apache2/sites-available/default
(略)
Redirect permanent /index.html /horizon ←追記
Options FollowSymLinks
AllowOverride None
# service apache2 reload
こんな感じです。これでhttp://ServerIP/にアクセスすると自動的にhttp://ServerIP/horizon/にリダイレクトされます。最初は/var/www/index.htmlにリダイレクトタグを入れようかとか、.htaccessファイルを仕込もうかとか思っていましたが、これだけで解決できました。
ログアウトのURLが変
DevStackやRDOを使ってOpenStack環境を作った時は問題なかったのですが、Ubuntu Serverでイチからパッケージを使ってインストールした環境でたまにページが404になる現象が起きていました。検証環境だし、たまに起こるだけなので見なかったことにしていたのですが、やっぱり気持ち悪いのです。
調べた結果、/etc/openstack-dashboard/local_settings.pyのファイルにログアウトのURLパスを記述すればいいことが分かりました。
# vi /etc/openstack-dashboard/local_settings.py
(略)
# Default Ubuntu apache configuration uses /horizon as the application root.
# Configure auth redirects here accordingly.
LOGIN_URL='/horizon/auth/login/'
LOGOUT_URL = '/horizon/auth/logout/' ←追記
LOGIN_REDIRECT_URL='/horizon'
# service apache2 reload
LOGOUT_URLが書かれていない(デフォルト値)から、そのURL遷移に失敗していたというのが動作不具合の原因でした。これくらいデフォルトで定義しておいてくれよ...。
取りあえずうまく動いたので良しとしましょう。