学习的时候可以参考:https://www.cnblogs.com/CloudMan6/p/5393376.html 这一系列文章。
在Pike版本中,keystone 命令已经被openstack命令代替,如显示用户列表:
openstack user list
登录(登录命令要在devstack目录下运行,当报告:WARNING: setting legacy OS_TENANT_NAME to support cli tools.时即表示可以正常使用):
source openrc admin admin
在dashboard的界面上无法登录的时候:
1. 使用openstack user list
报错如下:
Failed to discover available identity versions when contacting http://你的IP/identity. Attempting to parse version from URL.
Could not determine a suitable URL for the plugin
错误原因是keystone方面的,可能是某些操作修改了它的配置文件: /etc/keystone/keystone.conf ,使用以下命令可以查看keystone的日志。
journalctl -u devstack@keystone.service -f
这个命令可以查看keystone服务的状态,将status改为restart可以重启:systemctl status devstack@keystone.service
。
还有可能是Apache服务没有启动,通过以下命令查看
systemctl status apache2
如果显示如下,则可以看到红色部分,服务没有启动
通过以下命令启动:
systemctl start apache2
如果启动时候报错:
Job for apache2.service failed because the control process exited with
error code.
可以卸载重装Apache2:
sudo apt-get purge apache2
sudo apt-get install apache2
2.无法使用openstack CIL时:
方法:
①在devstack目录下 新建 openrc.ch
vim openrc.sh
②在openrc.sh文件中写入:
export OS_USERNAME=admin
export OS_PASSWORD=admin
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://127.0.0.1/identity#这个ULR 和本机环境有关;从/etc/keystone/keystone.conf文件中搜索admin_endopint后面的值。
export OS_IDENTITY_API_VERSION=3
③然后运行它:
source openrc.sh
3.如果报错:Missing value auth-url required for auth plugin password
2中的步骤重新做一遍,再执行openstack命令;可以使用 env | grep OS
查看设置的环境变量是否正确。
4.运行mysql报错:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
参考:https://www.cnblogs.com/qmfsun/p/6298010.html
要在root环境下进行,否则会导致dashboard无法登录。
4.如果devstack是安装在/opt/stack目录下的话,设置openstack环境变量的命令就应该是(在根目录下运行,后面两个是用户名和密码):
source opt/stack/devstack/openrc admin admin
5.nova list命令报错:
No handlers could be found for logger "keystoneauth.identity.generic.base"
解决办法:
先运行
nova --debug list
然后再运行
nova list
6.命令行执行openstack的命令报错:
The request you have made requires authentication. (HTTP 401) (Request-ID:
如果你没有在openstack界面更改过密码的话,那么很大可能你当前的命令行窗口距离上次执行source openrc admin admin
已经过了很长时间(我是12小时左右),因为在openstack中用户登录以后keystone会给当前用户一个Token(令牌),但这个令牌是有时间限制的,过期后就不能操作了,所以重开一个命令行窗口就好了。
7.通过openstack endpoint show nova
查看nova的端口报告:
More than one endpoint exists with the name 'nova'.
是因为有超过1个端口信息,可以使用:
openstack endpoint list --service nova
查看端口的列表。
8.镜像文件存储目录:
/opt/stack/data/glance/images/
PS:在计算节点建立虚拟机并不需要将镜像文件传到计算节点上,只需要在控制节点将文件传上传到Glance,然后通过scheduler自动调用计算节点去下载安装。
9.关闭neutron的服务:
systemctl stop devstack@q-svc.service
10.在openstack命令行中传递参数以空格隔开(test set为自己设置的命令):
(openstack)test set “2” “c1” “32” “4857805c-b9ac-11e9-9787-93dbd52e6d42” “242”
11.登录dashboard报错:
修改文件: /opt/stack/horizon/openstack_dashboard/settings.py
将:
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
修改为:
'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',