最近、openstack.orgの公式ドキュメントに従って、プロジェクトの1つにOpenStackIcehouseをインストールしました。コントローラノードにImageservice(Glance)をインストールしているときに、いくつかのエラーが発生しました。数分間グーグルした後、私はそれらを修正することができました。
これらのエラーのほとんどは、glanceデータベースのセットアップ(通常はglanceデータベース同期と呼ばれます)、Keystoneへのglanceサービスの登録、および glance-apiの起動中に発生しました。 サービスとglance-registry サービス。依存関係のエラーもほとんどありませんでしたが、この記事では説明しません。うまくいけば、それらについては別の記事で取り上げようと思います。
今のところ、Glanceのインストールと構成中に直面したエラーのリストは次のとおりです。
「glance-managedb_syncglance」の実行時にエラーが発生しました
エラーのスナップショットは次のとおりです。
$ glance-manage db_sync glance /usr/lib/python2.6/site-packages/glance/cmd/manage.py:41: DeprecationWarning: The oslo namespace package is deprecated. Please use oslo_config instead. from oslo.config import cfg /usr/lib64/python2.6/site-packages/Crypto/Util/number.py:57: PowmInsecureWarning: Not using mpz_powm_sec. You should rebuild using libgmp >= 5 to avoid timing attack vulnerability. _warn("Not using mpz_powm_sec. You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.", PowmInsecureWarning) 2015-02-03 22:00:02.848 8671 CRITICAL glance [-] DbMigrationError: version should be an integer
解決策:
これは、インストールされているGMPのバージョンと関係があります。上記のエラーからわかるように、PyCryptoにはlibgmpバージョン>=5が必要です。 。これを修正するには、次の手順に従います。
gmp-6.0.0.aをダウンロードしてインストールします
$ bunzip2 gmp-6.0.0a.tar.bz2 $ tar xvf gmp-6.0.0a.tar $ cd gmp-6.0.0a.tar $ ./configure $ make $ make check $ make install
これで、適切なバージョンのGMPがインストールされ、これらのライブラリを使用してPyCryptoをインストールできます。これを行うには、以下のコマンドを実行します。
$ pip install --ignore-installed PyCrypto
PyCrptoをインストールしたら、Glanceデータベースの同期を再試行できます。
ImportError:/usr/lib64/python2.6/site-packages /Crypto/Cipher/_AES.so:未定義のシンボル:rpl_malloc
「glance-db_syncglanceを管理する」の場合 ‘実行すると、次のエラーメッセージが表示されました:
$ glance-manage db_sync glance su -s /bin/sh -c "glance-manage db_sync" glance Traceback (most recent call last): File "/usr/bin/glance-manage", line 6, in from glance.cmd.manage import main File "/usr/lib/python2.6/site-packages/glance/cmd/manage.py", line 45, in from glance.db import migration as db_migration File "/usr/lib/python2.6/site-packages/glance/db/__init__.py", line 21, in from glance.common import crypt File "/usr/lib/python2.6/site-packages/glance/common/crypt.py", line 23, in from Crypto.Cipher import AES File "/usr/lib64/python2.6/site-packages/Crypto/Cipher/AES.py", line 50, in from Crypto.Cipher import _AES ImportError: /usr/lib64/python2.6/site-packages/Crypto/Cipher/_AES.so: undefined symbol: rpl_malloc
解決策:
以前は、GMPバージョン6.0.0.aをインストールしてlibgmp、PyCryptoエラーを修正し、pipinstallPyCryptoを修正しました。しかし、それは期待どおりに機能しませんでした。 PyCryptoはソースから再コンパイルする必要があり、pip経由でインストールするべきではないようです。
最新バージョンのPyCryptoをダウンロードして再コンパイルします
PyCryptoを解凍し、以下の環境変数を設定します。
$ export ac_cv_func_malloc_0_nonnull=yes
構成、ビルド、インストール
$ ./configure
$ python setup.py build
$ python setup.py install
PyCryptoをインストールしたら、「glance-db_syncglanceを管理」を試してください。 ‘もう一度。
エラー:ValueError:テーブル「migrate_version」にはutf8以外の照合があります、すべてのテーブルがCHARSET =utf8
であることを確認してください#su -s / bin / sh -c“ glance-manage db_sync” glance
注:サービスのデータベースを同期するときは常に、対応するテーブルが作成されていることを確認してください。たとえば、上記のコマンドを使用して「glance」データベースを同期した場合、「migrate_version」以外のテーブルは作成されず、このパラグラフのタイトルに示されているようにエラーログが報告されました。
mysql> show tables; +------------------+ | Tables_in_glance | +------------------+ | migrate_version | +------------------+ 1 row in set (0.00 sec)
解決策:
以下のようにmysqlデータベースにログインします:
$ mysql -u root -p mysql > use glance mysql > alter table migrate_version convert to character set utf8 collate utf8_unicode_ci;
ここで、「db_sync」を再試行してください。
mysql> show tables; +------------------+ | Tables_in_glance | +------------------+ | image_locations | | image_members | | image_properties | | image_tags | | images | | migrate_version | | task_info | | tasks | +------------------+ 8 rows in set (0.00 sec)
エラー:重要な一瞥[-] DbMigrationError:バージョンは整数である必要があります
Glanceデータベースの同期中に、まだいくつかのエラーが残っていました。
$ glance-manage db_sync glance /usr/lib/python2.6/site-packages/glance/cmd/manage.py:41: DeprecationWarning: The oslo namespace package is deprecated. Please use oslo_config instead. from oslo.config import cfg 2015-02-04 09:46:14.847 13116 CRITICAL glance [-] DbMigrationError: version should be an integer
解決策:
「glance-manage」を実行する代わりに ‘2つの引数を使用して、1つの引数‘ db_sync を試してください 「一人で。
# glance-manage db_sync
それは私のために働いた。
エラー:–os-auth-urlまたはenvのいずれかを介して認証URLが必要です[OS_AUTH_URL
$ keystone user-create --name=glance --pass=<glance_password> --email=<admin_email> Expecting an auth URL via either --os-auth-url or env[OS_AUTH_URLのいずれかを介して認証URLを期待しています
解決策: おそらくOpenStack認証URLが設定されていません。以下の環境変数を設定してみてください。
export OS_USERNAME=admin export OS_PASSWORD=keystone_password export OS_TENANT_NAME=admin export OS_AUTH_URL=http://controller.node.in:35357/v2.0
上記の変数をシェルに設定したら、glanceサービスをキーストーンに再度登録してみてください。それは私のために働いた。
$ keystone user-create --name=glance --pass=glance_password --email=admin_email Expecting an auth URL via either --os-auth-url or env[OS_AUTH_URL You should see table like the one below +----------+----------------------------------+ | Property | Value | +----------+----------------------------------+ | email | admin_email | | enabled | True | | id | c8c0212a16084a65469609c857914f8c | | name | glance | | username | glance | +----------+----------------------------------+
glance-apiサービスの開始中にエラーが発生しました
$ service openstack-glance-api start [FAILED]
エラーログ/var/log/glance/openstack-glance-api-startup.log 以下のメッセージを明らかにしました:
ストアを正しく構成できませんでした:ストアファイルシステムを正しく構成できませんでした。理由:少なくとも「filesystem_store_datadir」または「filesystem_store_datadirs」オプションを指定してください。addメソッドを無効にします。
解決策:
- glance-api.confを開きます ファイル。 /etc/glance/glance-api.confに配置する必要があります
- 「filesystem_store_datadir」を探します ‘と設定‘ / var / lib / glance / images / ‘を値として。すでに設定してコメントしている場合は、コメントを外してください。
- サービスを開始してみてください。
エラー:glance-apiの貼り付け構成ファイルが見つかりません
$ service openstack-glance-api start [FAILED]
解決策:
- glance-api.confを開きます ファイル。 /etc/glance/glance-api.confに配置する必要があります
- 「設定ファイルの貼り付け」テキストが含まれる行を探し、以下の行のコメントを解除します config_file =/ usr / share / glance / glance-api-dist-paste.ini
- サービスを再開してみてください。
重要な一瞥[-]UnicodeError:メッセージオブジェクトは非ASCII文字を含む可能性があるため、str()をサポートしていません。代わりにunicode()またはtranslate()を使用してください。
$ service openstack-glance-registry start [FAILED]
ログファイル‘ /var/log/glance/openstack-glance-registry-startup.log ‘は以下のメッセージを明らかにしました:
解決策:
ファイル‘ /usr/lib/python2.6/site-packages/glance/openstack/common/gettextutils.pyでエラーが発生しました ‘ UnicodeError を発生させていた‘ ‘。エラーの詳細については、こちらをご覧ください。
問題を解決するには。
1.このリンクに移動し、変更した「gettextutils.py」ファイルをコピーします。
2。既存のgettextutils.pyのバックアップを取ります 以下のファイル
cp /usr/lib/python2.6/site-packages/glance/openstack/common/gettextutils.py /usr/lib/python2.6/site-packages/glance/openstack/common/gettextutils.py.bak
3.ファイル‘ gettextutils.py を置き換えます ‘手順1からコピーしたものを使用します。
4。以下のようにglance-registryサービスを開始します:
$ service openstack-glance-registry start
注:上記のコマンドが構文エラーで失敗した場合は、手順1で変更したgettextutils.pyスクリプトをコピーしているときに、不要な文字をコピーした可能性があります。たとえば、コピーしたファイルに「[docs]<」などの文字が含まれていました。 / em> ‘。この問題を修正するには、「 gettextutils.py」を開きます ‘、それらの不要な文字を検索して削除します。ファイルを保存して、glance-registryサービスを再開します。
サービスの開始に失敗した場合は、ログファイルで新しいエラーメッセージを探してください。
# tailf /var/log/glance/openstack-glance-registry-startup.log Traceback (most recent call last): File "/usr/bin/glance-registry", line 6, in <module> from glance.cmd.registry import main File "/usr/lib/python2.6/site-packages/glance/cmd/__init__.py", line 17, in <module> gettextutils.install('glance', lazy=True) TypeError: install() got an unexpected keyword argument 'lazy'
上記のエラーを修正するには:
$vim /usr/lib/python2.6/site-packages/glance/cmd/__init__.py
関数‘ gettextutils.install(‘glance’、lazy =True)を探します ‘そしてそれを以下のものと交換してください:
gettextutils.install('glance')
ファイルを保存して、glance-registryサービスを開始してみてください。
エラー:glance-registryの貼り付け構成ファイルが見つかりません。
# service openstack-glance-registry start Starting openstack-glance-registry: [FAILED]
ログファイルは以下のエラーを明らかにしました:
# tailf /var/log/glance/openstack-glance-registry-startup.log
ERROR: Unable to locate paste config file for glance-registry.
解決策:
- 「vim/etc/glance/glance-registry.conf」を開きます ‘と「設定ファイルの貼り付け」テキストのある行を探します。
- 「config_file」のコメントを解除します。例:‘ config_file =/ usr / share / glance / glance-registry-dist-paste.ini ‘そしてサービスを再開してみてください。それは私のために働いた。
DeprecationWarning:oslo名前空間パッケージは非推奨になりました。代わりにoslo_configを使用してください。 oslo.configからインポートcfg
解決策: 以下のファイルを1つずつ開き、「 oslo.config」を置き換えます ‘with‘ oslo_config ‘そしてそれを保存します。 (ドットはアンダースコアに置き換えられていることに注意してください)
/usr/lib/python2.6/site-packages/glance/openstack/common/log.py /usr/lib/python2.6/site-packages/glance/common/wsgi.py:37 /usr/lib/python2.6/site-packages/oslo_config/cfg.py:333 /usr/lib/python2.6/site-packages/oslo_config/cfg.py:333 /usr/lib/python2.6/site-packages/glance/common/config.py:26 /usr/lib/python2.6/site-packages/paste/deploy/loadwsgi.py:22
サービスを開始して、警告が表示されるかどうかを確認してください。
これらの調査結果が誰かに役立つことを願っています。何か提案はありますか?下のコメントボックスで私と共有してください。次のこともお勧めします:OpenStackのKeystoneインストールエラーの解決策