openstack是什么?能干什么?涉及的初衷是什么?由什么来组成?刚接触openstack,说openstack不是一个软件,而是由多个组件进行组合,这是一个更深层次的理解,当我们看到dashboard的时候,我们或许对openstack感觉有一点感性认识了。简单地理解Openstack和Hadoop一样是一套由多个软件组件协同分工来管理虚拟机的一套管理系统平台。dashboard可以理解为openstack与用户交流的一个窗口,而dashboard对于真正的使用者来讲,它的功能上面有一定的局限性。而对于初学者通过它,可能会对openstack有一定的了解。openstack能干什么,可以搭建公有云,私有云,企业云。
openstack由哪些部分来组成:

  • Identity(代号为“Keystone”)
  • Dashboard(代号为“Horizon”)
  • Image Service(代号为“Glance”)
  • Network(代号为“Quantum”)
  • Object Storage(代号为“Swift”)
  • Block Storage(代号为“Cinder”)

基于Django框架的OpenStack 二次开发 openstack二次开发流程_github

基于Django框架的OpenStack 二次开发 openstack二次开发流程_python_02

对于openstack开发,开发环境还是比较重要的,有了开发环境,我们可以阅读源码,同样可以修改里面的环境。那么我们该如何搭建开发环境。

可以参考下面内容:

--------------------------------------------------------------------------------------

搭建dashboard开发环境

--------------------------------------------------------------------------
以下全是普通用户身份运行
在运行controller的节点(dashboard的节点)上进行以下操作。
原理,强大的Django本身提供了Web服务器构架的功能。开发环境测试,不是用修改正常的dashboard。
dashboard作为开发测试,提供了开发环境大搭建的脚本方法。
这个其实就是web服务器简单的配置。在一个节点上配置多个不同url,通常有两种方法:
一是基于IP的 使用多个IP地址,因为linux可以设置一个网卡多个IP。
二是基于端口的  不同的url使用不同的端口,这就是本文采用的方法。

主要步骤为搭建环境,配置接入参数,运行服务。

A、软件与组件准备
cd ~
pwd
/home/clw
mkdir github
cd github
git clone https://github.com/openstack/horizon.gitcd horizon
git pull
cd ~
mkdir src 
cd src
cp -r ~/github/horizon  src/
cd src/horizon
cp   ~/src/horizon/openstack_dashboard/local/local_settings.py.example  ~/src/horizon/openstack_dashboard/local/local_settings.py

B、搭建一个虚拟运行环境
cd  ~/src/horizon
sudo python tools/install_venv.py

(前提条件python -V版本必须要在2.6以上,并且已经安装Python的虚拟环境支持,使用easy_install virtualenv命令进行安装虚拟环境,详细virtualenv 2 安装与使用参见地址:http://blog.itpub.net/27043155/viewspace-732229/)
source .venv/bin/activate
python manage.py runserver 0.0.0.0:8080

在运行runserver 服务后,在服务器的后台就运行了一个服务。
在本地就可以通过浏览器中输入192.168.1.125:8080
用户名admin
密码openstack登录

浏览器一定要使用支持html5的浏览器,推荐使用最新firefox和chrome ,IE9兼容性还是很不好。

配置Linux中的eclipse环境,导入openstack keystone源码 详见帖子:

http://www.aboutyun.com/thread-9862-1-1.html

【文件参考附件】

官方地址:https://github.com/openstack

孵化项目: https://github.com/stackforge

基于Django框架的OpenStack 二次开发 openstack二次开发流程_github_03

(Opstack 中文运行DEMO图示)