zoukankan      html  css  js  c++  java
  • OpenStack安装

    Openstack Ocata版本在ubuntu 16.04上的安装配置

    版本选择

    Openstack选择2017年2月发布的Ocata版本
    ubuntu系统使用Ubuntu16.04。选ubuntu是因为笔者比较习惯,16.04是因为Ocata最低支持16.04。

    教程参考

    教程主要参考了官网的installation Guides以及linuxg公社的这篇Ubuntu 16.04 部署 OpenStack Ocata 详解
    Linux公社的教程主要多了编辑文档后的查看指令 # grep [1] /etc/glance/glance-registry.conf 来确认修改或添加的配置。

    可以利用这个指令检查一遍。

    安装配置问题

    笔者在安装配置中碰到的问题大多是因为配置文件写错,回头检查后修正即可。也可以在日志文件/var/log中查看具体错误。
    另外碰到俩个比较麻烦的问题通过科学上网后解决。

    第一个问题:su -s /bin/sh -c "nova-manage db sync" nova 命令失败

    错误提示如下:(很长可以跳过)

    2017-11-30 20:55:50.004 9271 INFO migrate.versioning.api [req-c1c8958c-0a2f-4131-9762-025a9c7d60b8 - - - - -] 215 -> 216... 
    2017-11-30 20:55:50.036 9271 ERROR oslo_db.sqlalchemy.exc_filters [req-c1c8958c-0a2f-4131-9762-025a9c7d60b8 - - - - -] 
    DBAPIError exception wrapped from (pymysql.err.InternalError) (1050, u"Table 'instances' already exists") [SQL: u"
    CREATE TABLE instances 
    (
    	created_at DATETIME, 
    	updated_at DATETIME, 
    	deleted_at DATETIME, 
    	id INTEGER NOT NULL AUTO_INCREMENT, 
    	internal_id INTEGER, 
    	user_id VARCHAR(255), 
    	project_id VARCHAR(255), 
    	image_ref VARCHAR(255), 
    	kernel_id VARCHAR(255), 
    	ramdisk_id VARCHAR(255), 
    	launch_index INTEGER, 
    	key_name VARCHAR(255), 
    	key_data MEDIUMTEXT, 
    	power_state INTEGER, 
    	vm_state VARCHAR(255), 
    	memory_mb INTEGER, 
    	vcpus INTEGER, 
    	hostname VARCHAR(255), 
    	host VARCHAR(255), 
    	user_data MEDIUMTEXT, 
    	reservation_id VARCHAR(255), 
    	scheduled_at DATETIME, 
    	launched_at DATETIME, 
    	terminated_at DATETIME, 
    	display_name VARCHAR(255), 
    	display_description VARCHAR(255), 
    	availability_zone VARCHAR(255), 
    	locked BOOL, 
    	os_type VARCHAR(255), 
    	launched_on MEDIUMTEXT, 
    	instance_type_id INTEGER, 
    	vm_mode VARCHAR(255), 
    	uuid VARCHAR(36), 
    	architecture VARCHAR(255), 
    	root_device_name VARCHAR(255), 
    	access_ip_v4 VARCHAR(39), 
    	access_ip_v6 VARCHAR(39), 
    	config_drive VARCHAR(255), 
    	task_state VARCHAR(255), 
    	default_ephemeral_device VARCHAR(255), 
    	default_swap_device VARCHAR(255), 
    	progress INTEGER, 
    	auto_disk_config BOOL, 
    	shutdown_terminate BOOL, 
    	disable_terminate BOOL, 
    	root_gb INTEGER, 
    	ephemeral_gb INTEGER, 
    	cell_name VARCHAR(255), 
    	node VARCHAR(255), 
    	deleted INTEGER, 
    	locked_by ENUM('owner','admin'), 
    	cleaned INTEGER, 
    	PRIMARY KEY (id), 
    	CHECK (locked IN (0, 1)), 
    	CHECK (auto_disk_config IN (0, 1)), 
    	CHECK (shutdown_terminate IN (0, 1)), 
    	CHECK (disable_terminate IN (0, 1))
    )ENGINE=InnoDB CHARSET=utf8
    
    "]
    

    根据DBAPIError exception wrapped from (pymysql.err.InternalError) (1050, u"Table 'instances' already exists") google了一下。根据这个提问下面的回答找到答案了。
    我认为可能是因为之前执行这条指令的时候已经创建了'instance'这个table,但是之前因为配置文件写错报错所以失败。再次执行的时候就报错已经存在这个table.
    解决方法:

    重新创建nova数据库,并从# su -s /bin/sh -c "nova-manage api_db sync" nova开始重新执行。 
    

    重新创建数据库的时候记得设置权限。

    第二个问题:dashboard登陆失败

    具体的错误是登陆后界面提示:Something went wrong!!,而不是404之类的错误。
    PS:如果出现404,500这类的错误(HTTP状态码)应该是配置文件问题。
    Dashborad的错误日志在/var/apache2/error.log中,在最后一行找到问题:

    Truncated or oversized response headers received from daemon process 'horizon': /usr/share/openstack-dashboard/openstack_dashboard/wsgi/django.wsgi  
    

    同样是通过科学上网找到这个提问,按照下面的操作解决了问题。
    解决方法:

    注释掉:SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
    

    总结

    这次只装了Identity,Image,Compute,Networking Service和Dashboard,也只是按照官方的文档一个个命令敲进去,很多命令的意思和作用还不了解。以后有机会补上。以及其他可选组件的安装配置问题。


    1. a-z ↩︎

  • 相关阅读:
    ZooKeeper的安装和API
    Flume案例Ganglia监控
    二十五、小程序的图片预览(放大滑动)
    二十四、小程序中改变checkbox和radio的样式
    二十三、小程序中的三级下拉框(下拉菜单)
    二十二:制作app的时候超出部分不能滑动
    二十一、当锚点遇到fixed(margin和padding)
    二十:让行内元素在div中垂直居中
    十九、多文件上传(ajaxFileupload实现多文件上传功能)
    十六、字符串和数组之间的转换
  • 原文地址:https://www.cnblogs.com/sunminming/p/7994596.html
Copyright © 2011-2022 走看看