このエントリーをはてなブックマークに追加

2.2.6. Dashboard (Horizon)のインストール

Horizonのインストールを行います。インストールしなくてもOpenStackは利用可能です。
しかし、仮想マシンを起動するエンドユーザがOpenStackのコマンドを覚えたりする必要があります。
利便性を考えるとブラウザ経由でOpenStackを利用できたほうが良いでしょう。

2.2.6.1. Horizonのインストール

HorizonのインストールはパッケージだけだとnoVNCがインストールされません。
また、Djangoのバージョン依存もそのままだと古いのがインストールされますので先に新しいものをインストールします。
RHEL6.3ではバージョンが新しく問題ありません。先に確認しておいたほうが良いでしょう。( yum info Django )
インストールして逆に古くなってしまっては意味がありませんので。
# rpm -ivh http://kojipkgs.fedoraproject.org/packages/Django/1.3.1/1.el6/noarch/Django-1.3.1-1.el6.noarch.rpm
# yum install -y openstack-dashboard

2.2.6.2. Horizonの設定

バックアップして設定変更します。
Horizonの起動するサーバの変更とローカルキャッシュをmemcachedを利用する設定にします。
ホスト名はstack01になっていますので注意して下さい。
また、データベースの設定も適切なものに設定して下さい。
# cp -a /etc/openstack-dashboard/local_settings /etc/openstack-dashboard/local_settings_orig
# sed -i "s#127.0.0.1#stack01#" /etc/openstack-dashboard/local_settings
# sed -i "s#locmem://#memcached://stack01:11211#g" /etc/openstack-dashboard/local_settings
# sed -i '24,30s/^/#/' /etc/openstack-dashboard/local_settings
# cat << HORIZON_SETUP | tee -a /etc/openstack-dashboard/local_settings > /dev/null
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'horizon',
        'USER': 'horizon',
        'PASSWORD': 'password',
        'HOST': 'stack01',
        'default-character-set': 'utf8'
    }
}
HORIZON_CONFIG = {
    'dashboards': ('nova', 'syspanel', 'settings',),
    'default_dashboard': 'nova',
    'user_home': 'openstack_dashboard.views.user_home',
}
SESSION_ENGINE = 'django.contrib.sessions.backends.cached_db'
HORIZON_SETUP

2.2.6.3. データベースの作成

Horizonが利用するデータベースを作成します。
Horizonのデータベースを設定するためのユーザ、パスワードはMySQLをインストールした時のものですので注意して下さい。
データベース名horizon、ユーザ名horizon、パスワードはpasswordとしているため適切なものへ変更してください。
ホスト名も同様にstack01としていますので変更が必要であればおこなって下さい。
# mysql -u root -pnova -e "create database horizon;"
# mysql -u root -pnova -e "grant all privileges on horizon.* to 'horizon'@'%' identified by 'password';"
# mysql -u root -pnova -e "grant all privileges on horizon.* to 'horizon'@'localhost' identified by 'password';"
# mysql -u root -pnova -e "grant all privileges on horizon.* to 'horizon'@'stack01' identified by 'password';"
# cd /usr/share/openstack-dashboard && ./manage.py syncdb
Horizonから起動したインスタンスへブラウザ経由でログイン出来るのですがスクロールバーが出て来て最下行がそのままだと見えませんので修正します。
またHorizonのログインは、Apacheのルートで問題無いのでそちらも設定変更をしておきます。
# sed -i 's/430/441/' /usr/lib/python2.6/site-packages/horizon/dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html
# cp -a /etc/httpd/conf.d/openstack-dashboard.conf /etc/httpd/conf.d/openstack-dashboard.conf_orig
# sed -i 's#WSGIScriptAlias /dashboard#WSGIScriptAlias /#' /etc/httpd/conf.d/openstack-dashboard.conf

2.2.6.4. noVNCのインストール

Horizonをインストールしてもコンソールでインスタンスへ接続するためのnoVNCがインストールされません。
またRHEL的にディレクトリ構成が気に入らない部分があるらしyumでインストール出来るパッケージが提供されていませんのでソースからインストールします。
というのは2012年8月までだったみたいです。RHEL6.3では確認しましたがEPELはちょっと未確認のためまだ書き換えていませんが openstack-nova-novncproxy をyumでインストールするだけでnoVNCも起動スクリプトも用意されていました。
# yum install -y git numpy
# git clone https://github.com/cloudbuilders/noVNC.git /opt/noVNC

起動スクリプトも提供されていませんので作成します。

# cat << 'EOF' | tee /etc/init.d/openstack-nova-novnc > /dev/null
#!/bin/sh
#
# openstack-nova-novnc  noVNC for OpenStack Nova
#
# chkconfig:   - 20 80
# description: OpenStack Nova noVNC
# author       Shiro Hagihara(Fulltrust.inc) <hagihara@fulltrust.co.jp @hagix9 fulltrust.co.jp>

start() {
  cd /opt/noVNC && ./utils/nova-novncproxy --flagfile=/etc/nova/nova.conf --web . >/dev/null 2>&1 &

}

stop() {
  kill $(ps -ef | grep nova-novncproxy | grep -v grep | awk '{print $2}')
}

restart() {
    stop
    start
}

reload() {
    restart
}
case "$1" in
    start)
        $1
        ;;
    stop)
        $1
        ;;
    restart)
        $1
        ;;
    *)
        echo $"Usage: $0 {start|stop|restart}"
        exit 2
esac
exit $?
EOF

2.2.6.5. noVNCの起動及び自動起動の設定

noVNCを起動します。 | openstack-nova-novncproxy をパッケージでインストールした場合は若干名前が違うので気をつけてください。

# chmod 755  /etc/init.d/openstack-nova-novnc
# service openstack-nova-novnc start
# chkconfig openstack-nova-novnc on

2.2.6.6. iptablesの設定及び再起動

iptablesにMySQL(3306)、noVNC(6080)、Apache(443,80)、Glance(9292)、Memcached(11211)、Qpid(5672)のポート開放を設定します。

# sed -i '10a-A INPUT -m state --state NEW -m tcp -p tcp --dport 11211 -j ACCEPT' /etc/sysconfig/iptables
# sed -i '10a-A INPUT -m state --state NEW -m tcp -p tcp --dport 9292 -j ACCEPT' /etc/sysconfig/iptables
# sed -i '10a-A INPUT -m state --state NEW -m tcp -p tcp --dport 6080 -j ACCEPT' /etc/sysconfig/iptables
# sed -i '10a-A INPUT -m state --state NEW -m tcp -p tcp --dport 5672 -j ACCEPT' /etc/sysconfig/iptables
# sed -i '10a-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT' /etc/sysconfig/iptables
# sed -i '10a-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT' /etc/sysconfig/iptables
# sed -i '10a-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT' /etc/sysconfig/iptables
# service iptables restart

2.2.6.7. Apacheの再起動及び自動起動の設定

設定変更を行ったのでApacheを再起動しておきます。自動起動の設定も行います。

# service httpd restart
# chkconfig httpd on
以上で、Horizonのインストールは終了です。
ここまででインストール作業は終了したので次から実際にOpenStackを利用してみましょう。