概述
Horizon是OpenStack中提供可视化管理(Dashboard)的组件,使用的Python的Web开发框架Django开发,使得Horizon本身代码结构较为简单,但是,内部数据流比较复杂。
本文主要目的是记录如何去远程部署一个Horizon组件(Horizon后台通过OpenStack提供的不同的Client访问服务接口),有助于之后考虑在Horizon上进行二次开发。
注意:本文实测的版本是 horizon-newton版本,其他版本可能存在不同问题,仅供参考。此外,服务器使用的是Ubuntu14.04。
易读的版本(带目录),可以访问我的Github地址:hoizon_install
第一步 初始化环境
安装Linux环境
# 注意pip最好用最新的版本,旧版不支持Python约束文件参数
# 参照官网升级https://pip.pypa.io/en/stable/installing/
sudo apt-get install git python-pip
sudo pip install python-dev
# 构建python虚拟运行环境
sudo pip install virutalenv
下载源码
# 首先拉下Horizon的代码
git clone https://git.openstack.org/openstack/horizon
# 因为,实验环境是Newton版本,所以,需要将版本回退,查看版本号
git tag
# 回退任意版本的commit
git revert
第二步 安装horizon依赖包
这一步是主要出问题的一步,因为在 Newton 版本下,目录提供 requirement.txt 是版本是有问题的,直接通过pip工具下载,运行会报错,至于问题在什么地方,请继续往下看。
此外,最新的文档中提供用tox工具的安装,配置虚拟环境,非常简单,但是,运行newton版本时候还是出错,这里暂时不深究这个。而,在 Newton 版本下的 tools 目录下,提供了install_venv.py的脚本工具安装,同样非常方便,但是,本人尝试过,直接运行同样存在依赖包版本的问题。
其实,看一下脚本,究其根本而言,原理都是配置一个 Python 虚拟环境,然后在虚拟环境中安装依赖包,配置运行环境变量,然后运行网站。所以,本文就从基础一步一步配置,让读者了解清楚原理。
安装虚拟运行环境
cd horizon/
virtualenv .venv
soucre .venv/bin/activate
# 安装需要的依赖包
pip install -Ur test-requirements.txt && pip install -Ur requirements.txt
# 检查约束,