• 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 ↩︎

  • 相关阅读:
    angular 输入属性
    angular 管道
    angular 双向绑定
    Python3与OpenCV3.3 图像处理(补)--第三节补充
    Python3与OpenCV3.3 图像处理(三)--Numpy数组操作
    Python3与OpenCV3.3 图像处理(二)--图像基本操作
    Python3与OpenCV3.3 图像处理(一)--环境搭建与简单DEMO
    安阳三篇之猝死的城
    安阳三篇之小城青年
    安阳三篇之全民赌局
  • 原文地址:https://www.cnblogs.com/sunminming/p/7994596.html
Copyright © 2020-2023  润新知