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

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

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

4.2.6.1. Horizonのダウンロード

Horizonのソースをダウンロードします。
ダウンロードしたバージョンはMasterになっているためバージョンはEssexにします。

4.2.6.1.1. Horizonのソースをダウンロード

$ sudo git clone https://github.com/openstack/horizon.git /opt/horizon

4.2.6.1.2. KeystoneのバージョンをEssexに固定

$ cd /opt/horizon ; git checkout -b essex origin/stable/essex

4.2.6.2. Horizonのインストール

依存関係はpipで行いますが、pipにより余計なものをインストールされないためにコメントアウトしてインストールします。
$ sudo sed -i 's/^-e/#-e/' /opt/horizon/tools/pip-requires
$ sudo pip install -r /opt/horizon/tools/pip-requires
$ cd /opt/horizon && sudo python setup.py install

4.2.6.3. Horizonの設定

Horizonの起動するサーバの変更とローカルキャッシュをmemcachedを利用する設定にします。
ホスト名はstack01になっていますので注意して下さい。
また、データベースの設定も適切なものに設定して下さい。
$ sudo cp -a /opt/horizon/openstack_dashboard/local/local_settings.py.example /opt/horizon/openstack_dashboard/local/local_settings.py
$ sudo sed -i "s#127.0.0.1#$NOVA_CONTOLLER_HOSTNAME#" /opt/horizon/openstack_dashboard/local/local_settings.py
$ sudo sed -i "s#locmem://#memcached://$NOVA_CONTOLLER_HOSTNAME:11211#g" /opt/horizon/openstack_dashboard/local/local_settings.py
$ cat << HORIZON_SETUP | sudo tee -a /opt/horizon/openstack_dashboard/local/local_settings.py > /dev/null
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'horizon',
        'USER': 'horizon',
        'PASSWORD': '$MYSQL_PASS_HORIZON',
        'HOST': '$NOVA_CONTOLLER_HOSTNAME',
        '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

4.2.6.4. データベースの作成

Horizonが利用するデータベースを作成します。
Horizonのデータベースを設定するためのユーザ、パスワードはMySQLをインストールした時のものですので注意して下さい。
データベース名horizon、ユーザ名horizon、パスワードはpasswordとしているため適切なものへ変更してください。
ホスト名も同様にstack01としていますので変更が必要であればおこなって下さい。
$ 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

4.2.6.4.1. Apacheの設定

パッケージだと自動的におこなってくれますがソースからの場合は手動で行う必要がありますので行います。

$ sudo mkdir -p /opt/horizon/.blackhole
$ sudo cp -a /etc/apache2/sites-available/default /etc/apache2/sites-available/default_orig
$ cat << 'APACHE_SETUP' | sudo tee /etc/apache2/sites-available/default > /dev/null
<VirtualHost *:80>
    WSGIScriptAlias / /opt/horizon/openstack_dashboard/wsgi/django.wsgi
    WSGIDaemonProcess horizon user=www-data group=www-data processes=3 threads=10
    SetEnv APACHE_RUN_USER www-data
    SetEnv APACHE_RUN_GROUP www-data
    WSGIProcessGroup horizon

    DocumentRoot /opt/horizon/.blackhole
    Alias /media /opt/horizon/openstack_dashboard/static/
    #Alias /vpn /opt/stack/vpn

    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>

    <Directory /opt/horizon/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ErrorLog /var/log/apache2/error.log
    LogLevel warn
    CustomLog /var/log/apache2/access.log combined
</VirtualHost>
APACHE_SETUP

4.2.6.4.2. 設定の反映

Apacheの設定を反映させます。

4.2.6.4.3. noVNCのインストール

GUIによるコンソール接続を行うためにnoVNCをインストールします。
起動スクリプトも必要ですので作成しておきます。

$ git clone https://github.com/cloudbuilders/noVNC.git /opt/noVNC $ cat << ‘noVNC_INIT’ | sudo tee /etc/init/nova-novncproxy.conf > /dev/null description “noVNC” author “hagix9 <hagihara.shiro@fulltrust.co.jp>”

start on runlevel [2345] stop on runlevel [016]

post-start script
cd /opt/noVNC && ./utils/nova-novncproxy –flagfile=/etc/nova/nova.conf –web . >/dev/null 2>&1 &

end script post-stop script

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

end script noVNC_INIT $ sudo stop nova-novncproxy ; $ sudo start nova-novncproxy

Horizonから起動したインスタンスへブラウザ経由でログイン出来るのですがスクロールバーが出て来て最下行がそのままだと見えませんので修正します。
$ sudo sed 's/441/430/' /opt/horizon/horizon/dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html

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

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

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