Nedávno jsem instaloval OpenStack Icehouse pro jeden ze svých projektů podle oficiální dokumentace z openstack.org. Během instalace Image service (Glance) na řadičový uzel se mi objevilo několik chyb. Po několika minutách hledání na Googlu jsem je mohl opravit.
K většině těchto chyb došlo při nastavování databáze pohledů (normálně se to nazývá synchronizace databáze pohledů), registraci služby pohledů pomocí Keystone a při spouštění glance-api službu a pohledový registr servis. Vyskytlo se také několik chyb v závislosti, které v tomto článku nebudu psát. Doufám, že se je pokusím pokrýt v jiném článku.
Prozatím zde je seznam chyb, se kterými jsem se setkal během instalace a konfigurace Glance.
Chyba při spuštění ‚glance-manage db_sync look‘
Zde je snímek chyby:
$ look-manage db_sync look/usr/lib/python2.6/site-packages/glance/cmd/manage.py:41:Upozornění na zastaralost:Balíček jmenného prostoru oslo je zastaralý. Místo toho použijte oslo_config. z oslo.config import cfg/usr/lib64/python2.6/site-packages/Crypto/Util/number.py:57:PowmInsecureWarning:Nepoužívá se mpz_powm_sec. Měli byste znovu sestavit pomocí libgmp> =5, abyste se vyhnuli zranitelnosti načasovaného útoku. _warn("Nepoužívá se mpz_powm_sec. Měli byste znovu sestavit pomocí libgmp> =5, abyste se vyhnuli zranitelnosti načasovaného útoku.", PowmInsecureWarning)2015-02-03 22:00:02.848 8671 CRITICAL pohled-] DbM verze should berrte před>Řešení:
To má něco společného s nainstalovanou verzí GMP. Jak můžete vidět z výše uvedené chyby, PyCrypto potřebuje verzi libgmp> =5 . Chcete-li to opravit, postupujte podle následujících kroků:Stáhněte si a nainstalujte 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 installNyní máte nainstalovanou správnou verzi GMP a pomocí těchto knihoven můžete nainstalovat PyCrypto. Chcete-li to provést, spusťte níže uvedený příkaz.
$ pip install --ignore-installed PyCryptoJakmile je PyCrpto nainstalováno, můžete znovu zkusit synchronizaci databáze Glance.
ImportError:/usr/lib64/python2.6/site-packages /Crypto/Cipher/_AES.so:nedefinovaný symbol:rpl_malloc
Když „pohled-spravovat db_sync pohled ‘ po provedení, zobrazila se mi níže uvedená chybová zpráva:
$ look-manage db_sync insightsu -s /bin/sh -c "glance-manage db_sync" lookTraceback (poslední poslední volání):Soubor "/usr/bin/glance-manage", řádek 6, od pohledu. cmd.manage hlavní import importu Soubor "/usr/lib/python2.6/site-packages/glance/cmd/manage.py", řádek 45, v migraci importu z insight.db jako db_migration Soubor "/usr/lib/python2. 6/site-packages/glance/db/__init__.py", řádek 21, do z insight.common import crypt Soubor "/usr/lib/python2.6/site-packages/glance/common/crypt.py", řádek 23, z Crypto.Cipher importujte soubor AES "/usr/lib64/python2.6/site-packages/Crypto/Cipher/AES.py", řádek 50, z Crypto.Cipher importujte _AESImportError:/usr/lib64/python2 .6/site-packages/Crypto/Cipher/_AES.so:nedefinovaný symbol:rpl_mallocŘešení:
Dříve jsme opravili libgmp, chybu PyCrypto instalací GMP verze 6.0.0.a a pip install PyCrypto. To ale nefungovalo podle očekávání. Zdá se, že PyCrypto by mělo být překompilováno ze zdroje a nemělo by být instalováno přes pip.
Stáhněte si nejnovější verzi PyCrypto a znovu zkompilujte
Rozbalte PyCrypto a nastavte níže uvedenou proměnnou prostředí.
$ export ac_cv_func_malloc_0_nonnull=yesKonfigurovat, sestavit a nainstalovat
$ ./configure
$ python setup.py build
$ instalace python setup.pyJakmile je PyCrypto nainstalováno, zkuste ‘glance-manage db_sync look ‘ znovu.
Chyba: ValueError:Tabulky „migrate_version“ nemají řazení utf8 , ujistěte se prosím, že všechny tabulky jsou CHARSET=utf8
# su -s /bin/sh -c pohled “glance-manage db_sync”
Poznámka:Při každé synchronizaci databáze pro jakoukoli službu se ujistěte, že jsou vytvořeny odpovídající tabulky. Když jsem například pomocí výše uvedeného příkazu synchronizoval databázi ‚gance‘, nebyly vytvořeny žádné tabulky kromě ‚migrate_version‘ a chybový protokol hlášený, jak je uvedeno v názvu tohoto odstavce.
mysql> zobrazit tabulky;+------------------+| Tables_in_glance |+------------------+| migrate_version |+------------------+1 řádek v sadě (0,00 s)Řešení:
Přihlaste se do databáze mysql, jak je uvedeno níže:
$ mysql -u root -pmysql> použijte insightmysql> změňte tabulku migrate_version převeďte na znakovou sadu utf8 collate utf8_unicode_ci;Nyní zkuste znovu „db_sync“.
mysql> zobrazit tabulky;+------------------+| Tables_in_glance |+------------------+| image_locations || image_members || image_properties || image_tags || obrázky || migrate_version || info o úkolu || úkoly |+------------------+8 řádků v sadě (0,00 s)Chyba :KRITICKÝ pohled [-] DbMigrationError:verze by měla být celé číslo
Při synchronizaci databáze Glance mi stále zůstalo několik chyb.
$ look-manage db_sync look/usr/lib/python2.6/site-packages/glance/cmd/manage.py:41:Upozornění na zastaralost:Balíček jmenného prostoru oslo je zastaralý. Místo toho použijte oslo_config. from oslo.config import cfg2015-02-04 09:46:14.847 13116 KRITICKÝ pohled [-] DbMigrationError:verze by měla být celé čísloŘešení:
Místo provádění „glance-manage “ se dvěma argumenty, zkuste s jedním argumentem „db_sync ‘ sám.
# look-manage db_syncFungovalo to pro mě.
Chyba :Očekávání adresy URL pro ověření prostřednictvím –os-auth-url nebo env [OS_AUTH_URL
$ keystone user-create --name=glance --pass=--email= Očekávání adresy URL pro ověření buď prostřednictvím --os-auth-url nebo env[OS_AUTH_URL Řešení: Pravděpodobně nejsou nastaveny autentizační URL OpenStack. Zkuste nastavit níže uvedené proměnné prostředí.
export OS_USERNAME=adminexport OS_PASSWORD=keystone_passwordexport OS_TENANT_NAME=adminexport OS_AUTH_URL=http://controller.node.in:35357/v2.0Jakmile jsou výše uvedené proměnné nastaveny ve vašem shellu, zkuste znovu zaregistrovat službu pohled do keystone. Fungovalo to pro mě.
$ keystone user-create --name=glance --pass=gance_password --email=admin_email Očekávání auth URL buď prostřednictvím --os-auth-url nebo env[OS_AUTH_URLMěli byste vidět tabulku podobnou té níže +---- ------+-----------------------------------+| Nemovitost | Hodnota |+----------+----------------------------------+| email | admin_email || povoleno | Pravda || id | c8c0212a16084a65469609c857914f8c || jméno | pohled || uživatelské jméno | pohled |+----------+----------------------------------+Chyba při spouštění služby look-api
Spuštění služby $ openstack-glance-api [FAILED]Protokol chyb /var/log/glance/openstack-glance-api-startup.log odhalil níže uvedenou zprávu:
Správná konfigurace úložiště se nezdařila:Souborový systém úložiště nelze správně nakonfigurovat. Důvod:Zadejte alespoň možnost „filesystem_store_datadir“ nebo „filesystem_store_datadirs“ Zakázání metody přidávání.
Řešení:
- Otevřete glance-api.conf soubor. Měl by být umístěn na /etc/glance/glance-api.conf
- Podívejte se na „filesystem_store_datadir “ a nastavte „/var/lib/glance/images/ ‘ jako hodnotu. Pokud je již nastaven a okomentován, stačí jej zrušit.
- Zkuste službu spustit.
Chyba : Nelze najít vložený konfigurační soubor pro look-api
Spuštění služby $ openstack-glance-api [FAILED]
Řešení:
- Otevřete glance-api.conf soubor. Měl by být umístěn na /etc/glance/glance-api.conf
- Vyhledejte řádek s textem „vložit konfigurační soubor“ a odkomentujte níže uvedený řádekconfig_file=/usr/share/glance/glance-api-dist-paste.ini
- Zkuste službu spustit znovu.
KRITICKÝ pohled [-] UnicodeError:Objekty zpráv nepodporují str(), protože mohou obsahovat znaky jiné než ASCII. Místo toho použijte unicode() nebo translate().
Spuštění služby $ openstack-glance-registry [FAILED]
Soubor protokolu ‘/var/log/glance/openstack-glance-registry-startup.log ‘ odhalil níže uvedenou zprávu:
Řešení:
K chybě došlo v souboru „/usr/lib/python2.6/site-packages/glance/openstack/common/gettextutils.py ‘ což vyvolalo ‘UnicodeError ‘. Více informací o chybě naleznete zde.
Chcete-li problém vyřešit.
1. Přejděte na tento odkaz a zkopírujte upravený soubor „gettextutils.py“.
2. Vytvořte zálohu stávajícího gettextutils.py soubor, jak je uvedeno níže
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. Nahraďte soubor ‘gettextutils.py s tou zkopírovanou z kroku 1.
4. Spusťte službu registru pohledů, jak je uvedeno níže:
Spuštění služby $ openstack-glance-registry
Poznámka:Pokud výše uvedený příkaz selže s chybou syntaxe, pravděpodobně jste při kopírování upraveného skriptu gettextutils.py v kroku 1 zkopírovali některé nežádoucí znaky. Zkopírovaný soubor například obsahoval některé znaky, jako je „[docs] ‘. Chcete-li problém vyřešit, otevřete „gettextutils.py ‘, vyhledejte a odstraňte tyto nežádoucí znaky. Uložte soubor a znovu spusťte službu registru pohledů.
V případě, že se službu nepodařilo spustit, vyhledejte novou chybovou zprávu v souboru protokolu.
# tailf /var/log/glance/openstack-glance-registry-startup.logTraceback (poslední poslední volání): Soubor „/usr/bin/glance-registry“, řádek 6, vod pohledu. cmd.registry import main Soubor "/usr/lib/python2.6/site-packages/glance/cmd/__init__.py", řádek 17, v gettextutils.install('glance', lazy=True)TypeError:install() má neočekávaný argument klíčového slova 'lazy'
Oprava výše uvedené chyby:
$vim /usr/lib/python2.6/site-packages/glance/cmd/__init__.py
a hledejte funkci ‘ gettextutils.install(‘glance’, lazy=True) ‘ a nahraďte jej následujícím:
gettextutils.install('glance')
uložte soubor a zkuste spustit službu registru pohledů.
CHYBA:Nelze najít vložený konfigurační soubor pro pohled-registr.
# service openstack-glance-registry start Spuštění openstack-glance-registry: [NESELHALO]
Soubor protokolu odhalil níže uvedenou chybu:
# tailf /var/log/glance/openstack-glance-registry-startup.log
CHYBA:Nelze najít vložený konfigurační soubor pro pohled-registr.
Řešení:
- Otevřete ‘vim /etc/glance/glance-registry.conf ‘ a vyhledejte řádek s textem ‘vložit konfigurační soubor’.
- Zrušte komentář „config_file“. Například:‘config_file=/usr/share/glance/glance-registry-dist-paste.ini “ a zkuste službu spustit znovu. Fungovalo to pro mě.
DeprecationWarning:Balíček jmenného prostoru oslo je zastaralý. Místo toho použijte oslo_config. z oslo.config import cfg
Řešení: Otevřete níže uvedené soubory jeden po druhém a nahraďte „oslo.config ‘ s ‘oslo_config ‘ a uložte to. (Poznámka tečka je nahrazena podtržítkem)
/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/ pohled/common/config.py:26/usr/lib/python2.6/site-packages/paste/deploy/loadwsgi.py:22
Zkuste spustit službu a zjistěte, zda se vám tato varování zobrazí.
Doufám, že tato zjištění mohou někomu pomoci. Máte nějaký návrh? Prosím, podělte se se mnou do pole pro komentáře níže.Také by vás mohlo zajímat :Řešení pro chyby instalace Keystone OpenStack