openstack学习记录(一) horizon二次开发部署(juno)
来源:互联网 发布:体体育训练软件 编辑:程序博客网 时间:2024/05/21 13:56
在虚拟机中部署了openstack(juno)版本,想要在物理机上调试查看horizon代码,过程如下:
编译器 pycharm 系统环境 Ubuntu14.04 , python .version() 2.7.6 django.version() 1.6.11
若没有django,先安装好django框架
一:下载juno版本对应的horizon源码
网址:https://releases.openstack.org/
下载 juno/horizon/2014.2.4版本,如下图
解压 horizon-2014.2.4.tar.gz文件,同时pycharm导入该文件夹。
二:配置环境
配置依赖包
sudo apt-get install python-pip
sudo apt-get install libxml2-dev libxslt1-dev python-dev
sudo apt-get install zlib1g-dev
sudo apt-get install libevent-dev
sudo apt-get install memcached
pip install python-memcached
sudo apt-get install libmemcached-dev
pip install pylibmc
(若不配置,在编译过程中会出现:
error: command ‘x86_64-linux-gnu-gcc’ failed with exit status 1)
环境配置
cd /*path*/horizon-2014.2.4/openstack_dashboard/local/cp loacl_settings.py.example local_settings.py
编辑local_settings.py文件
添加如下内容:
1 配置控制节点IP
OPENSTACK_HOST = "controller"
//此处为控制节点IP,可以配置hosts文件
注释OPENSTACK_HOST = “127.0.0.1”
2 允许任何主机访问dashboard
ALLOWED_HOSTS = ['*']
3 配置缓存会话存储服务:
CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', 'LOCATION': '127.0.0.1:11211', }}注意:注释掉其它session存储配置 #CACHES = { # 'default': { # 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache' # }#}
4可选,配置其它 time zone
TIME_ZONE = "UTC"
完成
配置host
nano /etc/hosts
添加控制节点hosts
10.0.0.11 controller#虚拟机控制节点IP为10.0.0.11,此处对应openstack配置完成时访问dashboard的IP http://*IP*/horizon
压缩静态文件
在horizon-2014.2.4目录下(在此处出错,但是发现并没有影响,暂时搁置)
python manage.py collectstatic -lpython manage.py compress --force
编译
cd openstack_dashboarddjango-admin compilemessages
进入 requirements.txt文件查看依赖,若缺失,或在上面显示Install的提示,点击Install,即可自动安装
调试
点击运行horizon,并在浏览器中访问 127.0.0.1:8080时,会提示
A server error occurred. Please contact the administrator.
查看pycharm记录,报错:
File “/home/ubuntun/horizon/horizon-2014.2.4/openstack_dashboard/api/init.py”, line 34, in
from openstack_dashboard.api import base
1 ImportError: cannot import name base
方法:
修改api.__init__.py,将from openstack_dashboard.api import base 改为import base
2 同理 若出现 ImportError: cannot import name keystone
将from openstack_dashboard.api import keystone 改为import keystone
3 import netifaces ImportError: No module named netifaces
sudo pip install netifaces
重新运行
出现界面:
期间登录dashboard可能会出现一下问题
The authentication token issued by the Identity service has expired in keystone
此处问题是虚拟机与horizon二次开发所在物理机时间不同步的问题
解决:重启ntp服务器
控制节点: service ntp restart
其余节点:service ntp stop //停止ntp
ntpdate 10.0.0.11 //此处是控制节点IP
service ntp restart //重启ntp服务,即可解决问题。
- openstack学习记录(一) horizon二次开发部署(juno)
- Openstack -- Horizon二次开发(一)
- Openstack -- Horizon二次开发(二)
- openstack Juno版部署记录
- Openstack Horizon 开发 (一)
- Openstack学习笔记(十一)-Horizon学习笔记(一)
- openstack horizon源代码解析(一)
- horizon登录过程分析(juno)
- Horizon 二次开发-部署
- openstack-juno安装记录
- OpenStack 手动安装(juno)
- Openstack安装Openstack(Juno版本)
- Openstack juno 与 Docker集成(学习笔记,仅供参考)
- OpenStack Ocata Horizon 开发(一)—— 快速开始
- OpenStack之Horizon源码架构浅析(一)
- Openstack学习笔记(十三)-Horizon学习笔记(三)
- Openstack学习笔记(十二)-Horizon学习笔记(二)
- Openstack学习笔记(十四)-Horizon学习笔记(四)
- 认识Oracle表
- 调试存储过程
- mybatis中传入String类型参数的问题
- 使用cvSmooth()函数以五种方式平滑图像
- markdown编辑数学公式
- openstack学习记录(一) horizon二次开发部署(juno)
- 如何删除Oracle表中的数据
- css3 彩虹文字解答
- Oracle管理表
- bzoj 2724: [Violet 6]蒲公英(分块预处理)
- 文本居中方式总结
- Oracle非空约束
- 有哪些「神奇」的数据获取方式?
- 安卓查看网络状态