Swift与Keystone认证问题,Permission denied: '/root/keystone-signing'

来源:互联网 发布:ubuntu不能切换输入法 编辑:程序博客网 时间:2024/05/02 14:03
问题描述:

在安装完swift集群之后,使用swift stat查看状态,发现一直没有响应,初步判断是由于swift同keystone的认证环节出现问题,查看/opt/stack/data/swift/logs/proxy.error日志文件发现如下错误:

UNCAUGHT EXCEPTION#012Traceback (most recent call last):#012  File "/usr/local/bin/swift-proxy-server", line 7, in <module>#012    execfile(__file__)#012  File "/opt/stack/swift/bin/swift-proxy-server", line 22, in <module>#012    run_wsgi(conf_file, 'proxy-server', default_port=8080, **options)#012  File "/opt/stack/swift/swift/common/wsgi.py", line 187, in run_wsgi#012    run_server()#012  File "/opt/stack/swift/swift/common/wsgi.py", line 149, in run_server#012    global_conf={'log_name': log_name})#012  File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 247, in loadapp#012    return loadobj(APP, uri, name=name, **kw)#012  File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 272, in loadobj#012    return context.create()#012  File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 710, in create#012    return self.object_type.invoke(self)#012  File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 207, in invoke#012    app = filter(app)#012  File "/opt/stack/python-keystoneclient/keystoneclient/middleware/auth_token.py", line 981, in auth_filter#012    return AuthProtocol(app, conf)#012  File "/opt/stack/python-keystoneclient/keystoneclient/middleware/auth_token.py", line 252, in __init__#012    os.makedirs(self.signing_dirname)#012  File "/usr/lib/python2.7/os.py", line 157, in makedirs#012    mkdir(name, mode)#012OSError: [Errno 13] Permission denied: '/root/keystone-signing'

没有权限访问 /root/keystone-signing文件,这应该是由于运行swift的进程无法访问root文件夹下面的内容造成的,openstack bug report https://bugs.launchpad.net/keystone/+bug/1036847 

解决方案:
修改/etc/swift/proxy-server.conf文件,在[filter:authtoken] 一节中指定signing_dir = /etc/swift,重启swift,重新验证,问题解决。
原创粉丝点击