Recientemente estaba instalando OpenStack Icehouse para uno de mis proyectos siguiendo la documentación oficial de openstack.org. Durante la instalación del servicio de imágenes (Glance) en el nodo del controlador, tuve algunos errores. Después de buscar en Google durante unos minutos, pude arreglarlos.
La mayoría de esos errores ocurrieron durante la configuración de la base de datos de vistazo (normalmente se denomina sincronización de la base de datos de vistazo), el registro del servicio de vistazo con Keystone y al iniciar glance-api servicio y vistazo-registro Servicio. También hubo algunos errores de dependencia, que no voy a escribir en este artículo. Con suerte, intentaré cubrirlos en otro artículo.
Por ahora, aquí está la lista de errores que encontré durante la instalación y configuración de Glance.
Error cuando se ejecutó 'glance-manage db_sync look'
Aquí está la instantánea del error:
$ 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
Esto tiene algo que ver con la versión de GMP instalada. Como puede ver en el error anterior, PyCrypto necesita la versión libgmp>
=5 . Para solucionar esto, siga los pasos a continuación:
Descargar e instalar 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
Ahora tiene instalada la versión correcta de GMP y con estas bibliotecas puede instalar PyCrypto. Para hacerlo, ejecute el siguiente comando.
$ pip install --ignore-installed PyCrypto
Una vez que PyCrpto esté instalado, puede volver a intentar sincronizar la base de datos de Glance.
ImportError:/usr/lib64/python2.6/site-packages /Crypto/Cipher/_AES.so:símbolo indefinido:rpl_malloc
Cuando ‘vistazo-administrar db_sync vistazo ' ejecutado, recibí el siguiente mensaje de error:
$ 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
Anteriormente, solucionamos el error libgmp, PyCrypto instalando GMP versión 6.0.0.a y pip install PyCrypto. Pero eso no funcionó como se esperaba. Parece que PyCrypto debe volver a compilarse desde la fuente y no debe instalarse a través de pip.
Descargue la última versión de PyCrypto y vuelva a compilar
Descomprima PyCrypto y establezca la siguiente variable de entorno.
$ export ac_cv_func_malloc_0_nonnull=yes
Configurar, compilar e instalar
$ ./configure
$ python setup.py build
$ python setup.py install
Una vez que PyCrypto esté instalado, pruebe 'glance-manage db_syncATCH ' de nuevo.
Error: ValueError:las tablas "migrate_version" tienen una intercalación que no es utf8 , asegúrese de que todas las tablas sean CHARSET=utf8
# su -s /bin/sh -c “vistazo-administrar db_sync” vista
Nota:Cada vez que sincronice la base de datos para cualquier servicio, asegúrese de que se creen las tablas correspondientes. Por ejemplo, cuando sincronicé la base de datos 'vistazo' usando el comando anterior, no se crearon tablas excepto 'migrate_version' y el registro de errores se informó como se muestra en el título de este párrafo.
mysql> show tables; +------------------+ | Tables_in_glance | +------------------+ | migrate_version | +------------------+ 1 row in set (0.00 sec)
Inicie sesión en la base de datos mysql como se muestra a continuación:
$ mysql -u root -p mysql > use glance mysql > alter table migrate_version convert to character set utf8 collate utf8_unicode_ci;
Ahora, intente "db_sync" nuevamente.
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)
Error:CRÍTICO vistazo [-] DbMigrationError:la versión debe ser un entero
Todavía me quedaron algunos errores al sincronizar la base de datos de 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
En lugar de ejecutar 'glance-manage ‘ con dos argumentos, pruebe con un argumento ‘db_sync solo.
# glance-manage db_sync
Funcionó para mí.
Error:Esperando una URL de autenticación a través de –os-auth-url o env [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
Solución: Probablemente las URL de autenticación de OpenStack no estén configuradas. Intente configurar las siguientes variables de entorno.
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
Una vez que las variables anteriores estén configuradas en su shell, intente registrar el servicio de vistazo en Keystone nuevamente. Funcionó para mí.
$ 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 | +----------+----------------------------------+
Error al iniciar el servicio de vistazo-api
$ service openstack-glance-api start [FAILED]
El registro de errores /var/log/glance/openstack-glance-api-startup.log reveló el siguiente mensaje:
Error al configurar la tienda correctamente:el sistema de archivos de la tienda no se pudo configurar correctamente. Motivo:especifique al menos la opción 'filesystem_store_datadir' o 'filesystem_store_datadirs' Deshabilitar el método de agregar.
- Abra glance-api.conf expediente. Debe estar ubicado en /etc/glance/glance-api.conf
- Cuidado con 'filesystem_store_datadir ' y establezca '/var/lib/glance/images/ como valor. Si ya está configurado y comentado, simplemente descoméntelo.
- Intente iniciar el servicio.
Error: No se puede ubicar el archivo de configuración de pegado para look-api
$ service openstack-glance-api start [FAILED]
- Abra glance-api.conf expediente. Debe estar ubicado en /etc/glance/glance-api.conf
- Busque la línea con el texto "pegar archivo de configuración" y elimine el comentario de la siguiente líneaconfig_file=/usr/share/glance/glance-api-dist-paste.ini
- Intente iniciar el servicio de nuevo.
Vistazo CRÍTICO [-] UnicodeError:los objetos de mensaje no admiten str() porque pueden contener caracteres que no sean ASCII. Utilice unicode() o translate() en su lugar.
$ service openstack-glance-registry start [FAILED]
El archivo de registro ‘/var/log/glance/openstack-glance-registry-startup.log ' reveló el siguiente mensaje:
El error ocurrió en el archivo '/usr/lib/python2.6/site-packages/glance/openstack/common/gettextutils.py ' que generaba 'UnicodeError '. Encontrará más información sobre el error aquí.
Para solucionar el problema.
1. Vaya a este enlace y copie el archivo 'gettextutils.py' modificado.
2. Realice una copia de seguridad del gettextutils.py existente archivo como se muestra a continuación
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. Reemplace el archivo 'gettextutils.py ‘ con el copiado del paso 1.
4. Inicie el servicio de registro de vistazo como se muestra a continuación:
$ service openstack-glance-registry start
Nota:Si el comando anterior falla con un error de sintaxis, probablemente copió algunos caracteres no deseados mientras copiaba el script gettextutils.py modificado en el paso 1. Por ejemplo, el archivo copiado contenía algunos caracteres como '[docs] '. Para solucionar el problema, abra 'gettextutils.py ', busque y elimine esos caracteres no deseados. Guarde el archivo y vuelva a iniciar el servicio de registro de vistazo.
En caso de que el servicio no se inicie, busque el nuevo mensaje de error en el archivo de registro.
# 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'
Para corregir el error anterior:
$vim /usr/lib/python2.6/site-packages/glance/cmd/__init__.py
y busque la función ' gettextutils.install('glance', lazy=True) ' y reemplácelo con el siguiente:
gettextutils.install('glance')
guarde el archivo e intente iniciar el servicio de registro de vistazo.
ERROR:No se pudo ubicar el archivo de configuración de pegado para el registro de vistazo.
# service openstack-glance-registry start Starting openstack-glance-registry: [FAILED]
El archivo de registro reveló el siguiente error:
# tailf /var/log/glance/openstack-glance-registry-startup.log
ERROR: Unable to locate paste config file for glance-registry.
- Abra 'vim /etc/glance/glance-registry.conf ' y busque la línea con el texto 'pegar archivo de configuración'.
- Elimine el comentario de 'config_file'. Por ejemplo:'config_file=/usr/share/glance/glance-registry-dist-paste.ini ' e intente iniciar el servicio de nuevo. Funcionó para mí.
Advertencia de desuso:el paquete de espacio de nombres de oslo está en desuso. Utilice oslo_config en su lugar. desde oslo.config importar cfg
/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
Intente iniciar el servicio y vea si recibe esas advertencias.
Espero que estos hallazgos puedan ayudar a alguien. ¿Tienes alguna sugerencia? Por favor, comparte conmigo en el cuadro de comentarios a continuación.También te puede interesar :Soluciones para errores de instalación de Keystone de OpenStack