Problem description:
After installing the swift cluster, use swift stat to check the status and find that there has been no response. The preliminary judgment is that there is a problem with the authentication process of swift and keystone, view/opt/stack/data/SWIFT/logs/proxy. the error log file contains the following errors:
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'
No access to the/root/keystone-signing file, which should be caused by the failure of the process running swift to access the contents under the root folder, openstack bug report https://bugs.launchpad.net/keystone/+bug/1036847
Solution:
Modify the/etc/SWIFT/proxy-server.conf file, specify signing_dir =/etc/SWIFT in the [filter: authtoken] section, restart swift, reverify, and solve the problem.