OpenstackM版常见报错(Ubuntu)+ 注意事项
创建的实例没有IP地址,打不开控制台

配置Metadata代理
$ vim /etc/neutron/metadata_agent.ini
文件内容



Dashboard的控制台无法连接到虚拟机

查看nova组件安装文档
vim /etc/nova/nova.conf
vnc配置的地方:
[vnc]
enabled = True
vncserver_listen = 0.0.0.0
vncserver_proxyclient_address = $my_ip
若控制台无法连接,请将<controller>换为<IP地址>
novncproxy_base_url = http://controller:6080/vnc_auto.html
将controller改为控制节点的IP地址

重新启动计算节点:通过执行命令service\ nova-compute\ reboot来实现;停止所有虚拟机:运行shutdown\ -r\ now命令以立即停止所有运行中的虚拟机;即可完成。

注:
如果报错Missing Parameters(S):balabala…
是环境变量的问题,需要手动配置:
第一种方法:
分别在bash写上命令:
# 配置API访问端点
$ export OS_URL=http://controller:35357/v3
# 配置API的版本
$ export OS_IDENTITY_API_VERSION=3
第二种方法:
在openstack目录下面新建一个admin-openrc文件
$ vim /openstack/admin-openrc
# 在admin-openrc脚本文件里面添加如下代码,ADMIN_PASS为当前admin用户的密码
export OS_PROJECT_DOMAIN_NAME=default
export OS_USER_DOMAIN_NAME=default
export OS_PROJECT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=ADMIN_PASS
export OS_AUTH_URL=http://controller:35357/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
# 运行此脚本文件
$ source /openstack/admin-openrc
即可
查看compute的Nova服务的状态为down:

查看nova的日志文件:
$ cd /var/log/nova
$ ls

#使用cat命令查看nova-compute.log
$ cat nova-compute.log

查看最后一条日志信息AMQPLAIN,“这表明应用消息Queueing Plain存在问题。” 其中一种可能原因是,在nova的配置文件中错误地设置了应用消息Queueing Plain队列的安全密码。

完成密码更改后启动虚拟机,并执行脚本文件admin-openrc。如果仍然出现down状态,请考虑重新创建消息队列:
# 密码自定义
$ rabbitmqctl add_user openstack1 1234
# 配置权限
$ rabbitmqctl set_permissions openstack1 ".*" ".*" ".*"
再在nova.conf配置文件中将rabbit_userid修改为更改后的openstack1


重启虚拟机,运行admin-openrc脚本文件


生成identity服务实体m如果出现错误提示:程序名为‘openstack’在以下软件包中存在:或者返回HTTP状态码500错误信息。
$ openstack service create --name keystone --description "OpenStack Identity" identity
`-------
+-------------+----------------------------------+
如果报错:The program 'openstack' can be found in the following packages:
* python-openstackclient
* python3-openstackclient
----------执行
$apt-get install python-openstackclient
###如果报500错误 可以去/var/log/keystone 下面去查看错误日志
一般是数据库字符集的错误解决办法如下:
##删除keystone的数据库
$ mysql -uroot -p$MYSQL_PASSWD -e "DROP DATABASE IF EXISTS keystone;"
#重启电脑
$ init 6
#重新安装keystone数据库
+ 进入数据库
```bash
$ mysql -u root -p
创建数据库
>>> CREATE DATABASE keystone;
赋予数据库权限
# <KEYSTONE_DBPASS>为自定义密码
>>> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY '1234';
>>> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY '1234';
同步数据库
$ su -s /bin/sh -c "keystone-manage db_sync" keystone
执行上面的创建服务实体命令出现表格,说明正确 。
在dashboard上启动实例,提示无法创建服务器

第一反应是查看nova的日志文件

报了一个错误的消息队列,于是我又重新创建一个消息的实体
# 密码自定义
$ rabbitmqctl add_user openstack2 1234
# 配置权限
$ rabbitmqctl set_permissions openstack2 ".*" ".*" ".*"
在nova.conf配置文件中将rabbit_userid设置为openstack2的相关参数设置,并将其保存到指定路径下。
问题依旧存在,在检查其他构建日志后仍未找到相关错误信息。
进一步查阅nova的官方文档后发现,在涉及[neutron]的部分缺少了相应的参数设置。

更改过后


注意事项:
一、设置各个数据库权限的时候要输密码,比如创建nova:
>>> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' \
IDENTIFIED BY '1234';
>>> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' \
IDENTIFIED BY '1234';
>>> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \
IDENTIFIED BY '1234';
>>> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' \
IDENTIFIED BY '1234';
'NOVA_DBPASS’要自己设置密码
二、在配置neutron组建的桥接代理时
$ vim /etc/neutron/plugins/ml2/linuxbridge_agent.ini
文件内容
[linux_bridge]
替代指定的接口名称来实现物理接口映射。
physical_interface_mappings = provider:ens33
将ens33设为控制器节点对应的网络接口名称。
Dashboard 创建网络时的操作步骤
当您在Dashboard界面配置网络时,请务必将光标移动至问号图标位置以查看提示信息。
请配置以下参数:
- 网络名称
- 状态设置为启用
- 设置为共享模式

指定子网名称并提供相应的IP地址信息:其中网络地址设定为192.168.4.0/24(该数值表示用于无分类域间路由选择的CIDR格式配置),对应的网关IP配置为192.168.4.1(其中网络号部分已由前缀确定)

按照以下格式添加DHCP服务的配置池:起始IP,终止IP
示例:192.168.4.100,192.168.4.120
每条目代表一条记录
按照以下格式添加DHCP服务的配置池:起始IP,终止IP
示例:192.168.4.100,192.168.4.120
每条目代表一条记录

成功创建

总结:
1、检查日志指令 cd /var/log,并根据捕获到的错误信息定位到相应服务的日志文件进行排查故障;
2、必须严格按照配置文档规定的步骤操作;
3、建议养成备份组件配置的习惯,在完成一次组件设置后做好记录;
4、听过如下的指导方针"不到万不得已的情况下尽量避免重置系统或数据(Linux常见错误都能自行解决),如果自行无法解决问题则可参考GitHub寻求帮助,在多数情况下第二天就能得到解答";
5、遇到500级别的错误通常是由配置文件设置不当导致的问题;而出现400级别错误时通常是服务器运行状态异常,请查看Apache日志排查故障原因。
