OpenStack Nova开发与测试环境搭建
系统要求:Ubuntu10.10-64 ~12.04(我是在12.04上搭建的,11版本应该也没有问题)
其他的就没什么了,因为搭建过程中的脚本会将需要的软件都安装上。Ok,开始。在终端中执行:
<font face="Courier New">1</font> | <font face="Courier New">sudo</font> apt-get install <font face="Courier New">python-dev libssl-dev python-pip git-core</font> |
下面的一步比较重要,我开始的时候没有注意,导致了很多问题也浪费了很多时间。就是一定要用Virtualenv建立一个虚拟的python环境,然后在这个虚拟环境中进行开发与测试,关于Virtualenv社区里就有比较详细的介绍,我这里仅仅简单说一下如何使用:
用easy_install或pip下载安装Virtualenv
<font face="Courier New">1</font> | <font face="Courier New">easy_install Virtualenv</font> |
然后使用Virtualenv创建虚拟环境(需要在Virtualenv的安装路径中执行)
<font face="Courier New">1</font> | <font face="Courier New">virtualenv openTest</font> |
执行成功后会得到信息,然后使用刚创建的虚拟环境:
<font face="Courier New">1</font> | <font face="Courier New">cd</font> <font face="Courier New">openTest/ </font> |
<font face="Courier New">2</font> | <font face="Courier New">source</font> <font face="Courier New">bin/activate</font> |
执行完之后会发现终端的用户名之前多了个括号,括号里的内容就是当前的虚拟环境。
到这里之后开始跟Nova相关的内容,下载到nova的源代码:
<font face="Courier New">1</font> | <font face="Courier New">git clone https://github.com/openstack/nova.git </font> |
<font face="Courier New">2</font> | <font face="Courier New">cd</font> <font face="Courier New">nova</font> |
接下来官方给出的指导是执行:
<font face="Courier New">1</font> | <font face="Courier New">./run_tests.sh</font> |
但是这个脚本没有很顺利的执行完过(多次测试)。不清楚是为什么,现在暂时把这个放在一边,还有别的路径:
<font face="Courier New">1</font> | <font face="Courier New">python tools/install_venv.py</font> |
手动的安装nova需要的依赖包。这个我也尝试过多次,中间也失败过,至今已无法获知失败的原因了,但是现在确实执行成功了,见下图:
Nova development environment setup is complete.
Ok ,开发环境就这样搭建好了,看起来很简单,但是这个过程我实验了不知道多少次,可能是我运气比较差吧,过程中间有一点特别重要:就是一定要在虚拟的环境中运行脚本,官方文档中也有明确说明:”Nova development uses virtualenv to track and manage Python dependencies while in development and testing. This allows you to install all of the Python package dependencies in a virtual environment or “virtualenv” (a special subdirectory of your nova directory), instead of installing the packages at the system level.“
这样做还有另外一个好处,就是虚拟环境可以创建很多个,一个实验不成功可以很轻松的换其他环境来实验,省去了很多麻烦。下面在运行测试的脚本就会得到有用的结果了