openstack报错解决三

来源:互联网 发布:登录windows账户和密码 编辑:程序博客网 时间:2024/05/21 19:37

启动Nova时出错

linux-ffun:~ # nova service-list

Traceback (most recent call last):
  File "/usr/bin/nova", line 6, in <module>
    from novaclient.shell import main
  File "/usr/lib/python2.7/site-packages/novaclient/shell.py", line 38, in <module>
    import keyring
  File "/usr/lib/python2.7/site-packages/keyring/__init__.py", line 12, in <module>
    from .core import (set_keyring, get_keyring, set_password, get_password,
  File "/usr/lib/python2.7/site-packages/keyring/core.py", line 158, in <module>
    init_backend()
  File "/usr/lib/python2.7/site-packages/keyring/core.py", line 58, in init_backend
    set_keyring(load_config() or _get_best_keyring())
  File "/usr/lib/python2.7/site-packages/keyring/core.py", line 66, in _get_best_keyring
    keyrings = backend.get_all_keyring()
  File "/usr/lib/python2.7/site-packages/keyring/util/__init__.py", line 24, in wrapper
    func.always_returns = func(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/keyring/backend.py", line 179, in get_all_keyring
    _load_backends()
  File "/usr/lib/python2.7/site-packages/keyring/backend.py", line 139, in _load_backends
    list(map(_load_backend, backends))
  File "/usr/lib/python2.7/site-packages/keyring/backend.py", line 124, in _load_backend
    mod = importlib.import_module('.'+name, package)
  File "/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/usr/lib/python2.7/site-packages/keyring/backends/Gnome.py", line 6, in <module>
    gi.require_version('GnomeKeyring', '1.0')
NameError: name 'gi' is not defined


这里需要修改python源代码,将标红处注释掉。

linux-ffun:~ # vi /usr/lib/python2.7/site-packages/keyring/backends/Gnome.py

import os

try:
    from gi import Repository
    if Repository.get_default().enumerate_versions('GnomeKeyring'):
        #gi.require_version('GnomeKeyring', '1.0')
        from gi.repository import GnomeKeyring
except ImportError:

补充1:

openstack安装到这一步后,注释掉那行代码,再启动还是可能会报错,这个时候注意看nova.conf。这里面有个my_ip不能写死为hosts里配置的controller。必须写当前主机的ip地址,原因不明,注红处是修改后的。

linux-ffun:/etc/nova # vi nova.conf

[DEFAULT]
verbose = True
log_dir = /var/log/nova
connection_type = libvirt
compute_driver = libvirt.LibvirtDriver
image_service = nova.image.glance.GlanceImageService
volume_api_class = nova.volume.cinder.API
auth_strategy = keystone
network_api_class = nova.network.neutronv2.api.API
bindir = /usr/bin
state_path = /var/lib/nova
lock_path = /run/nova
service_neutron_metadata_proxy = True
security_group_api = neutron
rpc_backend = rabbit
auth_strategy = keystone
my_ip = 172.16.15.13
network_api_class = nova.network.neutronv2.api.API
security_group_api = neutron
linuxnet_interface_driver = nova.network.linux_net.NeutronLinuxBridgeInterfaceDriver
firewall_driver = nova.virt.firewall.NoopFirewallDriver
enabled_apis=osapi_compute,metadata
verbose = True
[cors]
[cors.subdomain]
[database]
connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova
[matchmaker_redis]
[matchmaker_ring]
[oslo_concurrency]
lock_path = /var/run/nova
[oslo_messaging_amqp]

补充2:ml2_conf.ini文件的flat_networks的值为oa

linux-ffun:/etc/neutron/plugins/ml2 # vi ml2_conf.ini

[ml2_type_flat]
flat_networks = oa

这个oa和接口设置有关。注意飘红处

linux-ffun:/etc/neutron/plugins/ml2 # vi linuxbridge_agent.ini

[linux_bridge]
physical_interface_mappings = oa:eth1



0 0
原创粉丝点击