OpenStack Ocata Horizon 开发(一)—— 快速开始
来源:互联网 发布:政府数据开放 分析 编辑:程序博客网 时间:2024/05/16 09:50
一、写在前面
这篇文章主要介绍了OpenStack Ocata Horizon 根据官方的快速开始文档进行实际的调试验证,涉及在基于基本组件部署完成的情况下,源码部署Horizon开发环境,在后续的文章中将通过不同的文章来具体来说明开发,不涉及OpenStack Ocata 其他组件部署,由于作者能力或者理解不够如果错误请告知, 如果转载,请保留作者信息。
邮箱地址:jpzhang.ht@gmail.com
个人博客:https://jianpengzhang.github.io/
CSDN博客:http://blog.csdn.net/u011521019
二、Horizon (OpenStack Dashboard)
Horizon是一个基于Django的项目,旨在提供一个完整的OpenStack仪表板,以及一个可扩展框架,用于从可重用组件来构建新的仪表板。 openstack_dashboard模块是Django站点的实现,它使用Horizon APP来提供与各种OpenStack项目基于Web的交互。
项目页面:https://launchpad.net/horizon
蓝图和功能规格:https://blueprints.launchpad.net/horizon
问题跟踪:https://bugs.launchpad.net/horizon
源代码:https://github.com/openstack/horizon
代码审查:
[https://review.openstack.org/#q,status:open+project:openstack/horizon,n,z]
(https://review.openstack.org/#q,status:open+project:openstack/horizon,n,z)
持续集成: Jenkins
https://jenkins.openstack.org ; Zuul
http://status.openstack.org/zuul
三、使用Horizon
请参阅doc/source/topics/install.rst 有关如何在OpenStack中安装Horizon。 它描述了示例步骤,并提供了更详细的设置和配置的指针。也可以在http://docs.openstack.org/developer/horizon/topics/install.html上找到。
Horizon界面功能使用请参考:https://docs.openstack.org/user-guide/common/conventions.html
四、开发人员入门
doc/source/quickstart.rst 或http://docs.openstack.org/developer/horizon/quickstart.html介绍如何设置Horizon开发环境并开始开发。
五、构建贡献者文档
OpenStack Horizon 源码包目录中有一个目录为:horizon-stable-ocata/doc
:
.├── Makefile└── source ├── browser_support.rst ├── conf.py ├── contributing.rst ├── faq.rst ├── glossary.rst ├── images ├── index.rst ├── intro.rst ├── plugin_registry.rst ├── quickstart.rst ├── ref ├── testing.rst ├── topics └── tutorials
这里面是由贡献者撰写的关于Horizon使用的文档,与http://docs.openstack.org/developer/horizon/quickstart.html内容是一直的,如果觉得网页浏览查看速度慢或者环境限制不能上网可以通过构建成html在本地进行浏览,源文件使用reStructuredText维护在doc/source目录中,由Sphinx构建.
自动建筑命令:
$ ./run_tests.sh --docs
如果想知道更多run_tests.sh的功能,可以./run_tests.sh --help
查阅,通过该方式构建文档,通过virtualenv建立一个隔离的环境。
手动建筑命令:
$ tools / with_venv.sh sphinx-build doc / source
doc/build/html目录中:
.├── browser_support.html├── contributing.html├── faq.html├── genindex.html├── glossary.html├── _images├── index.html├── intro.html├── _modules├── objects.inv├── plugin_registry.html├── py-modindex.html├── quickstart.html├── ref├── search.html├── searchindex.js├── _sources├── _static├── testing.html├── topics└── tutorials
六、Horizon UI开发环境部署
这里认为你已经部署好了一个openstack ocata基础环境,仅演示手动部署horizon UI开发环境。
(1)、基础准备
通过Virtualenv,创建一个隔离的horizon部署环境,
pip安装virtualenv:
apt-get install python-pippip install virtualenv 或者 apt-get install python-virtualenv
创建一个独立的Horizon运行环境:
virtualenv --no-site-packages horizon.venv输出:Running virtualenv with interpreter /usr/bin/python2New python executable in /home/work/horizon.venv/bin/python2Also creating executable in /home/work/horizon.venv/bin/pythonInstalling setuptools, pkg_resources, pip, wheel...done.
source进入该环境:
source horizon.venv/bin/activate(horizon.venv) root@ubuntu:/home/work#
退出当前的venv环境,使用deactivate命令:
(horizon.venv) root@ubuntu:/home/work# deactivateroot@ubuntu:/home/work#
(2)、安装 Horizon
下载 Horizon 代码:
git clone https://github.com/openstack/horizon.gitcd horizon/
安装 Horizon 用于开发:在horizon目录下执行,
pip install -e .
出错:
_setup/include/cext.h:34:20: fatal error: Python.h: No such file or directory #include "Python.h"
执行如下命令解决问题,在重复执行上面的命令:
sudo apt-get install -y libxml2-dev libxslt1-dev zlib1g-dev python3-pip
配置环境:
cp openstack_dashboard/local/local_settings.py.example openstack_dashboard/local/local_settings.py
vi openstack_dashboard/local/local_settings.py
ALLOWED_HOSTS = '*'# ...OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = 'default' # 如果 Domain 的 ID 不是 default,则为对应的 ID # ...OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True# ...OPENSTACK_HOST = "172.16.17.59" # 控制节点IP地址OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOSTOPENSTACK_KEYSTONE_DEFAULT_ROLE = "user" #根据你的环境自己配置这个参数,这里我是‘user’# ...OPENSTACK_API_VERSIONS = { "identity": 3, "image": 2, "volume": 2,}# ...# 根据你的网络环境配置这里的参数OPENSTACK_NEUTRON_NETWORK = { #... 'enable_router': False, 'enable_quotas': False, 'enable_distributed_router': False, 'enable_ha_router': False, 'enable_lb': False, 'enable_firewall': False, 'enable_vpn': False, 'enable_fip_topology_check': False,}
初始化静态文件 注意:一定要先执行此步骤再启动服务!否则再执行因为缓存还是不能正常运行,需要在 collectstatic 时增加 -c 参数
python manage.py collectstatic -lpython manage.py compress --force
启动 Horizon 项目:
python manage.py runserver 0.0.0.0:8001
出错:
AttributeError: DjangoTranslation instance has no attribute 'plural'
执行如下命令解决问题:
cd horizon/openstack_dashboarddjango-admin compilemessages
(3)、小结
完成上述配置,一个简单的 OpenStack UI 开发环境就搭建完成了。当然每个人的环境不一致,可能会遇到一些奇怪的问题,需要静下心满满解决这些问题。
- OpenStack Ocata Horizon 开发(一)—— 快速开始
- Openstack Horizon 开发 (一)
- OpenStack-Ocata (一)
- Openstack -- Horizon二次开发(一)
- OpenStack Ocata 安装(一)环境准备
- Openstack Horizon开发 (二)
- Openstack Horizon开发 (三)
- openstack horizon 快速入门
- openstack horizon源代码解析(一)
- OpenStack Horizon开发环境
- Horizon 源码阅读(一)—— Horizon 整体介绍
- Horizon 源码阅读(一)—— Horizon 整体介绍
- Openstack Ocata安装(Dashboard)
- RDO一键部署OpenStack-Ocata版本
- OpenStack horizon开发环境搭建
- OpenStack Mitaka Horizon 主题开发
- Openstack学习笔记(十一)-Horizon学习笔记(一)
- openstack学习记录(一) horizon二次开发部署(juno)
- 电脑和电脑之间传输大文件
- Java IO 序列化与反序列化
- CentOS7 执行yum 命令出错 两步解决【2017.5.18原创】
- N级台阶(比如100级),每次可走1步或者2步,求总共有多少种走法?
- Roboschool
- OpenStack Ocata Horizon 开发(一)—— 快速开始
- ParlAI: A new software platform for dialog research
- A novel approach to neural machine translation
- mariadb数据库
- Eclipse中10个比较有用的快捷键组合
- apache超文本传输协议
- 7143
- POJ1102 LC-Display【打印图案】
- IOS学习 iOS多线程非常好