この記事は、2016/03/01 前後に、Open Stack Liberty環境をマシン1台に対してall in one構成で構築した時にはまったところをまとめた記事です。
構築した環境
- 物理マシン上に作成
- OS: CentOS7.2(minimal)
- インストールツール: packstack
1. Dashboardからインスタンスを生成する時のエラー
問題
OpenStackのDashboardからインスタンスの起動を行う時に、以下のようなエラーメッセージが表示され、インスタンスの生成ができませんでした。
'ascii' codec can't decode byte 0xe5 in position 0: ordinal not in range
Dashboardを開くブラウザの言語を英語にしても同様の症状でした。
解決法
pythonのデフォルトエンコーディングをascii から utf-8に変更する
-
/usr/lib64/python2.7/site-packages/sitecustomize.py
と/usr/lib/python2.7/site-packages/sitecustomize.py
に以下の内容を追加することで解決しました。
try:
import apport_python_hook
except ImportError:
pass
else:
apport_python_hook.install()
import sys
sys.setdefaultencoding('utf-8')
- sitecustomize.pyのファイルがない場合は、同様のファイル名でファイルを作成してください。もし、デプロイしてしまった後でも、同様のことを行い、OpenStackの動いているマシンの再起動を行うと治るはずです。
2. ボリュームのリソース上限が取得できないエラー
問題
Dashboard上のSystem => Defaultを開く時とIdentify => ProjectからProjectを作成する時に以下のエラー文が表示され、一部の項目の値が取得・変更できませんでした。
Error: Unable to retrieve volume limit information
解決法
/etc/cinder/cinder.confを修正する
参考: https://ask.openstack.org/en/question/87045/error-unable-to-retrieve-volume-limit-information/
-
/etc/cinder/cinder.conf 内の
[keystone_authtoken]
以下に下記の内容を記述する。- auth_uriとauth_urlの
{your_keystone_ip}
の部分と{cinder password}
の部分は自分の環境にあったものに変更してください。 - cinder passwordは、packstack実行時のanswerファイル内に記述されているCONFIG_CINDER_KS_PWの値を使用してください。
- auth_uriとauth_urlの
[keystone_authtoken]
auth_uri = http://{your_keystone_ip}:5000
auth_url = http://{your_keystone_ip}:35357
auth_plugin = password
project_domain_id = default
user_domain_id = default
project_name = services
username = cinder
password = {cinder password}
- 修正後は設定を反映させるため、cinder apiのサービス、もしくはマシンの再起動を行ってください。
おまけ
-
Packerを使ってOpenStack Libertyに対してインスタンスを生成する場合、
packer build
の途中で、SSH 接続がTimeoutする場合があります。その時はPackerのバージョンを0.90以上にすると治る場合があります。