陈沙克

Jun 282016
 

使用Devstack的时间其实很长。我第一次成功安装OpenStack就是使用Devstack,记忆很清楚,那时候Devstack项目刚刚成立,时间大概是2011年10月份的时候。

Devstack,只要的用户群,是开发者,直接使用源码安装,Shell的脚本,使用的出神入化,如果你希望深入了解学习如何安装OpenStack,那么代码本是就是最好的教程。

Devstack最近几年,其实变化很大,尤其在OpenStack采用大帐篷策略,项目暴涨,这也导致Devstack需要重新考虑,提供插件的机制,让更多的项目可以更加方便集成Devstack上。

这其实也导致很多以前写的文章都已经失效,很多设置已经不起作用。

真正的OpenStack玩家,一定会给Devstack折磨过。希望本文可以帮助大家减轻一点痛苦。

这篇文章是把以前的Devstack使用的文章,修改完成。

操作系统

Devstack目前是支持Ubuntu14.04和CentOS 7,不过全球的OpenStack开发者,大部分都在用Ubuntu 14.04。所以为了减少麻烦,还是建议你使用Ubuntu 14.04

详细的介绍 http://docs.openstack.org/developer/devstack/

使用trystack源

安装devstack痛苦的其中一个原因,是OpenStack代码,都需要从github下载,这样由于网络的原因,经常导致各种错误,简直让人崩溃,各种错误,也根本无法通过google来解决。

目前国内已经提供了完整的OpenStack的github的mirror。

http://git.trystack.cn

这样Devstack成功概率会大大提高。

另外devstack还会下载image,下载的过程也是非常缓慢。trystack也提供大家常用的image下载。

http://images.trystack.cn

 

指定版本

默认无论是Devstack和OpenStack,都是采用Master的代码进行安装,这样经常会出现,今天安装成功,明天失败,代码时刻在变化。所以我们不仅仅要指定OpenStack的版本,还需要指定Devstack的版本,才能提供安装成功的概率。

另外插件的版本,也是指定,如果使用master,也是可能会导致你失败。

目前Devstack的默认安装的组件,就的几个核心模块。如果你希望安装其他模块,就需要通过插件来安装。Devstack支持的插件列表

http://docs.openstack.org/developer/devstack/plugin-registry.html

目前各个项目,基本都会有一个devstack的目录,进入目录,就有介绍如何在devstack把该项目装起来。

https://github.com/openstack/rally/tree/master/devstack

 

网络环境

vmware workstation,安装ubuntu 14.04 虚拟机,记住,最小化安装,仅仅安装ssh server服务就可以。

虚拟机使用NAT网络,虚拟机默认通过dhcp获得的IP地址是

192.168.27.128/24

auto eth0
iface eth0 inet static
        address 192.168.27.128
        netmask 255.255.255.0
        network 192.168.27.0
        broadcast 192.168.27.255
        gateway 192.168.27.2
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 114.114.114.114
        dns-search test.com

vmware workstation默认设置分配的IP地址池是128开始分配。所以我的

Floating Ip是:192.168.27.102到192.168.27.110

网关是:192.168.27.2

Snap3

Snap4

看图,就应该很清楚 http://docs.openstack.org/developer/devstack/guides/neutron.html

Snap4

设置ubuntu源

对于ubuntu的系统,默认安全会从国外的源安装,导致速度比较慢。

deb http://cn.archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse
deb http://cn.archive.ubuntu.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://cn.archive.ubuntu.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://cn.archive.ubuntu.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://cn.archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse

允许update

apt-get update

记得同步一下时间

ntpdate ntp.sjtu.edu.cn

 

安装

apt-get install git

下载devstack

cd /home
git clone http://git.trystack.cn/openstack-dev/devstack.git -b stable/mitaka

目前Devstack脚本已经不支持直接使用root身份运行,你需要创建stack用户运行

cd /home/devstack/tools/
./create-stack-user.sh

修改devstack目录权限,让stack用户可以运行

chown -R stack:stack /home/devstack
chmod 777 /dev/pts/0

切换的stack用户下

su stack
cd /home/devstack

进入devstack目录下,创建local.conf文件,最新版本的devstack,改动很大,我专门写篇文章来介绍local.conf 设置参数

这个local.conf 文件最关键的地方

更多的local.conf 例子,可以查看 https://github.com/shake/devstack  会把我验证通过的配置文件都放到github上,方便大家。

你也可以使用wget命令,直接下载我的local.conf 配置文件。

wget -O - https://raw.githubusercontent.com/shake/devstack/gh-pages/local.conf-sample-mitaka > ./local.conf

例子

[[local|localrc]]

# use TryStack git mirror
GIT_BASE=http://git.trystack.cn
NOVNC_REPO=http://git.trystack.cn/kanaka/noVNC.git
SPICE_REPO=http://git.trystack.cn/git/spice/spice-html5.git

#OFFLINE=True
RECLONE=True

# Define images to be automatically downloaded during the DevStack built process.
DOWNLOAD_DEFAULT_IMAGES=False
IMAGE_URLS="http://images.trystack.cn/cirros/cirros-0.3.4-x86_64-disk.img"

HOST_IP=192.168.27.128


# Credentials
DATABASE_PASSWORD=pass
ADMIN_PASSWORD=pass
SERVICE_PASSWORD=pass
SERVICE_TOKEN=pass
RABBIT_PASSWORD=pass

HORIZON_BRANCH=stable/mitaka
KEYSTONE_BRANCH=stable/mitaka
NOVA_BRANCH=stable/mitaka
NEUTRON_BRANCH=stable/mitaka
GLANCE_BRANCH=stable/mitaka
CINDER_BRANCH=stable/mitaka


#keystone
KEYSTONE_TOKEN_FORMAT=UUID

##Heat
HEAT_BRANCH=stable/mitaka
enable_service h-eng h-api h-api-cfn h-api-cw


## Swift
SWIFT_BRANCH=stable/mitaka
ENABLED_SERVICES+=,s-proxy,s-object,s-container,s-account
SWIFT_REPLICAS=1
SWIFT_HASH=011688b44136573e209e


# Enabling Neutron (network) Service
disable_service n-net
enable_service q-svc
enable_service q-agt
enable_service q-dhcp
enable_service q-l3
enable_service q-meta
enable_service q-metering
enable_service neutron

## Neutron options
Q_USE_SECGROUP=True
FLOATING_RANGE="192.168.27.0/24"
FIXED_RANGE="10.0.0.0/24"
Q_FLOATING_ALLOCATION_POOL=start=192.168.27.102,end=192.168.27.110
PUBLIC_NETWORK_GATEWAY="192.168.27.2"
Q_L3_ENABLED=True
PUBLIC_INTERFACE=eth0
Q_USE_PROVIDERNET_FOR_PUBLIC=True
OVS_PHYSICAL_BRIDGE=br-ex
PUBLIC_BRIDGE=br-ex
OVS_BRIDGE_MAPPINGS=public:br-ex

# #VLAN configuration.
Q_PLUGIN=ml2
ENABLE_TENANT_VLANS=True

# Logging
LOGFILE=/opt/stack/logs/stack.sh.log
VERBOSE=True
LOG_COLOR=True
SCREEN_LOGDIR=/opt/stack/logs

运行

./stack.sh

安装过程,你很可能遇到错误,重复运行就可以,一般错误都会通过。如果反复,还是停留在相同的错误,那么你很可能就需要重新干净的系统再来一遍,这个主要是因为网络的bridge设置有关。

看看结果

Snap3

装完后,虚拟机是不能重启的,所以你最好是当前状态做一个快照。都是采用暂停。

测试

用admin登录Dashbord,为了测试,我们创建一个project:test,给project创建一个用户

Snap5

使用该该账户重新登录Dashboard

大概的步骤

  1. 创建lan,分配内网IP地址段,记得设置dns
  2. 创建router,连接外网,同时连接lan
  3. 创建test安全组,允许tcp,udp,icmp全部访问
  4. 上传秘钥,或者创建秘钥
  5. 创建虚拟机,分配floating IP,验证网络所有功能

我是用vmware workstation做实验,我在我的笔记本上,可以直接ssh到虚拟机上,那么基本所有的问题都解决,最好是使用秘钥的方式,这样基本各种功能都测试了一遍。

 

 

 

参考文章

http://docs.openstack.org/developer/devstack/guides/neutron.html

http://blog.chinaunix.net/uid-13152448-id-2906443.html

关于如何重启服务等相关问题

http://www.unixarena.com/2015/08/how-to-stop-and-start-openstack-on-ubuntu.html

http://zqfan.github.io/openstack/2015/01/10/devstack/

Jun 202016
 

一直都计划写篇文章介绍Kolla项目。可能是因为了解太多,不知道如何写,还有一种可能,就因为追求写的太正经,导致一直没写。

有一次和朋友介绍Kolla的时候,开玩笑说,其实我也不愿意让你知道kolla,因为这个东西太革命,把我以前积累的安装和部署的经验,全部都报废。不过也确实没啥办法,这是社区的项目,如果真的是革命性,那么你知道只是早晚的事情,为了保持我的专家身份,我也就只能提前告诉你了。

2015年4月份有位朋友去参加温哥华峰会的感受就是:如果OpenStack不支持Docker,那么这很可能是最后一次峰会。OpenStack基金会及时调整方向,全面支持容器。

  1. kolla实现OpenStack容器化
  2. Magnum管理容器和COE (Mesos、 Google的Kubernetes、 Docker Swarm)
  3. Solum实现开发容器化
  4. Murano实现App store 容器化

OpenStack要向外界证明自己有能力管理容器,就必须吃自己的狗食,先把自己容器化。作为OpenStack厂商谈论容器的时候,OpenStack本是没有容器化,那是比较讽刺一件事情。

基本介绍

Kolla项目是2014年9月份,Steven Dake提交的,这位老兄以前是HeatPTL,还是Corosync作者,牛的一塌糊涂。对于OpenStack的项目是非常熟悉,并且以前是红帽工程师,目前跳槽到思科,代表思科推出Kolla项目。

Kolla的目标,就是要做到100个节点开箱即用,所有的组件的HA都具备。简单说,Fuel装完是什么,他就是什么样子。实现的代价肯定比Fuel小很多。

Kolla,就是把目前OpenStack项目用到的所有组件都容器化。

kolla

图片来自刘光亚文章

其实上面图片还可以增强一下,包括下面组件,也实现的容器化

  1. libvirt
  2. qemu
  3. OVS 和linux bridge
  4. Ceph
  5. HAproxy,Keeplived
  6. MariaDB
  7. ELK ( Heka )
  8. MongoDB
  9. rabbitmq

进行了非常彻底的容器化。

把OpenStack组件容器化,其实技术上的挑战最大在于网络OVS和Qemu。目前这些技术难点都已经搞定,剩下就是体力活,对一个一个组件进行容器打包。

目前OpenStack大帐篷管理下的项目,大概是50多个,http://governance.openstack.org/reference/projects/index.html

Kolla项目会对大帐篷里的项目进行build 镜像。这个工作,估计到明年4月份,就能基本完成。目前大家常用的组件

  1. nova
  2. glance
  3. keystone
  4. cinder
  5. heat
  6. neutron
  7. horizon

上面7个组件,包括控制节点的HA,目前已经经过了我的反复测试。后续的Newton版本,应该会集成更多的组件。

Kolla架构

其实我不搞开发,我就说一下我的理解,OpenStack的项目,都会根据功能进行拆分,每个模块做一件事情。社区目前的规划大概是

  • Kolla,主要是负责Docker的镜像制作
  • kolla-Ansible负责容器的配置管理
  • Kolla-Kubernetes,也是负责容器的配置管理

kolla的Docker镜像制作,非常有意思,支持红帽的rpm包,Ubuntu和Debian的Deb包,还能支持源码的方式。理论上你源码制作的镜像,是可以跑在所有的支持容器的操作系统。

你可以选择ansible来做容器的管理,也可以选择Kubernetes来管理。目前ansible已经比较完善,Kubernetes还在积极开发中,估计怎么都还需要1年后,才能真正投入使用。

目前阶段,Kolla还没有安装操作系统的功能。社区的初步考虑是把ironic放到一个容器里,通过这个容器来安装操作系统。

https://blueprints.launchpad.net/kolla/+spec/bifrost-support

希望Newton版本可以实现。

Kolla的生态

Kolla对于所有的OpenStack创业公司,包括Mirantis的Fuel,都是革命性的东西,以前很辛苦写的东西,很可能都作废。个人预测,2017年,OpenStack部署,都会采用容器的方式。

  1. 红帽目前的Liberty产品,计算节点已经支持使用kolla的容器来部署
  2. Fuel,也已经开始考虑采用Docker来部署OpenStack
  3. Rackspace已经采用LXC来部署OpenStack
  4. Canonical采用LXD来部署OpenStack

Snap4

从上面可以看到,红帽,思科,九州云,Intel,IBM和Oracle,都是投入在积极开发。从Mitaka,Newton版本,项目的热门程度(Review,Commit,人天投入)都是排名前十,这是非常不容易的做到的。

 

Kolla解决的问题

过去,无论是OpenStack创业公司,还是企业尝试OpenStack,在安装和部署,都花费和消耗大量的精力。这其实也是影响OpenStack推广的一个重要障碍。如何才能让大家从安装部署中解脱出来呢?如何才能让大家把精力放到如何用好OpenStack上呢?用好OpenStack,才能真正体现出OpenStack的价值。

采用Kolla来部署OpenStack,装好系统后,你大概只需要10分钟的时间,就可以搭建完成full feature的功能OpenStack。各种社区的最佳实践,高可用,都集成在上面。而且全都是运维人员都明白的python语言。

容器化后的OpenStack,让人感觉真的像积木一样,你需要什么,就拿过来放上去就可以。

这样说可能大家比较容易接受,Kolla让以前很多OpenStack的部署,安装,升级的问题,解决起来更加优雅。

上周见一位朋友谈起OpenStack升级,总结的很好,所谓升级就是把以前的删掉,再装新的版本。如果你是采用包的安装,例如rdo,那你就慢慢熬夜搞定吧,对于容器来说,做到这点就太简单了,非常优雅。

对于部署,已经没有安装的过程,你只需要把相应的容器放到相应的位置,配置管理推送过去就可以。对于升级,你只需要做一个容器的替换就可以实现升级,只需要集中精力去处理数据库的问题就可以。

build image的过程,其实可以官方提供,大家直接使用就可以。

资料

目前kolla的资料不多,官方文档以外,就2位的blog,大家可以参考

kolla项目的Croe 张雷同学的blog http://xcodest.me/

Kolla项目的PTL blog:https://sdake.io/

May 232016
 

现在OpenStack项目越来越多,要想搞清楚每个项目具体用途是啥,就算对于我们OpenStack创业公司,有时候都是有点吃力。很很多好玩的东西,我们不知道,这是比较可惜的事情。

到底从哪个项目开始介绍,选了半天,终于选了这个项目Shaker,和我的名字很类似。开玩笑,是用我名字创建的项目,所以就必须认真学习。

靠一个人的力量的搞定那么多项目,其实也不现实。这次就把我九州云同事江军波 OpenStack应用实战之Shaker安装测试 转载过来。

项目介绍

在以前OpenStack做网络的性能测试是比较麻烦的,各种的网络场景,vlan,vxlan,Flat模式,L3,Dvr,各家厂商的SDN插件,这些场景的性能测试工作量,是非常庞大的,你都需要登录虚拟机里面,使用工具进行互相打压,并且把数据记录下来。这样手工出来的测试结果,很难让人信服。

Shaker项目是Mirantis发起,专门针对OpenStack网络的性能的测试工具。通过模拟不同的网络场景,通过heat的模板,创建虚拟机,并且在虚拟机里运行iperf,iperf3, netperf等工具来对网络进行自动化性能测试,并且把测试的结果用网页形式输出。

目前OpenStack的另外一个著名测试工具Rally, 也是Mirantis发起,对OpenStack进行整体的测试的一个工具,可以对OpenStack的功能,存储的性能进行压力测试,可以测试磁盘的IOPS,并且提供很好的web展示。

Rally和Shaker有各自的重点,两个工具结合起来,在OpenStack交付给用户的场景下,可以提供一份比较客观的验收报告。

环境说明

需要有一个可用的openstack环境,需要配置好heat服务,因为shaker会使用编排服务启动各种场景下的虚拟机,由于测试网络性能,所以计算节点需要两个以上,采用的neutron L3网络。

为了好说明,专门拿一台机器跑Shaker,其实安装在控制节点,也是可以的。控制节点也可以跑计算服务。

本文环境如下

角色 IP 备注
Controller 192.168.1.41 网络节点在上面
Compute1 192.168.1.42  
Compute2 192.168.1.43  
Shaker 192.168.1.43  

 

安装篇

在Shaker机器上 (CentOS 7.2)

安装Shaker项目,这里我把github的源替换成trystack.cn, 为了加快下载的速度。

git clone http://git.trystack.cn/openstack/shaker
cd shaker
pip install

制作镜像

这个环节其实是最容易出错,如果有已经做好的镜像,其实就可以跳过这一步。目前发现制作镜像出现错误都是因为网络原因导致,大家要留意网络。

设置环境变量,这个是需要admin的权限。

source ./keystonerc

你可以设置镜像的创建参数,etc/shaker.conf ,默认参数应该就够用。默认是采用ubuntu的镜像来进行测试

shaker-image-builder

heat,作为一个编排软件,日常其实很少用到,这次倒是体会了一次heat编排功能的强大,shaker-image-builder,大概需要完成的内容大概是:

  1. 创建路由器
  2. 创建内部网络,连接到路由器上,
  3. 把外网连接到路由器上,
  4. 创建一个专用Flavor shaker-flavor
  5. 下载一个ubuntu镜像,上传到glance上
  6. 通过镜像,创建一个虚拟机
  7. 通过cloud init 安装所有的测试工具
  8. 装完后,关机,做快照,上传到glance,镜像命名为shaker-imag
  9. 删除虚拟机。并且把第一次下载的ubuntu镜像,网络,路由都删除。

你的OpenStack就是多了一个镜像和一个Flaovr。

上面这些事情如果手工来完成,估计没1,2个小时是搞不定,而且很容易出错。shaker-image-builder就是调用Heat模板来完成。

https://github.com/openstack/shaker/blob/master/shaker/resources/image_builder_templates/ubuntu.yaml

上面最容易出错是第三步,路由器连接外网。你需要提前在你的OpenStack里,创建一个外部网络,heat通过代码检测出那个网络是外部网络,就接到路由器上,这样你创建的虚拟机才能联网。不然肯定就会出错。

日后其实可以考虑把做好的镜像提供出去,下载直接就可以使用。

制作镜像原理

shaker-image-builder这个命令底层就调用了一个python函数,shaker/engine/image_builder.py 中的 build_image 函数

shaker提供了三种制作shaker-image镜像的模板,centos、debian、ubutnu,默认使用ubuntu,可以使用 –image-builder-template 参数指定使用哪个镜像,使用哪个镜像对shaker来说都一样,shaker在乎的是镜像中的pyshaker-agent、iperf、netperf、flent工具,换句话说,你镜像中只要有这几个工具,啥系统都可以

build_image函数会创建名字为 shaker-flavor的flavor(1vcpu,512mb memory,3g disk),以及名字为shaker-image的glance镜像,shaker创建镜像底层使用的技术是heat,build_image函数读取 shaker/resources/image_builder_templates/ 目录下的模板文件,默认是ubuntu,然后由heat创建需要的network、router,下载原始镜像,然后通过cloud-init工具,安装shaker需要的工具,build_image函数会等待虚拟机关机,最后创建虚拟机的快照,上传到glance中

build_image函数创建镜像之前会检查glance是否存在名为shaker-imag的镜像以及名为shaker-flavor的flavor,如果已经存在,就不会再次创建了,所以不管使用哪个原始镜像创建shaker-image镜像,都只会创建出一个,例如第一次使用ubuntu,那么第二次使用centos,shaker-image-builder 命令会直接返回,不会继续。

测试

环境有限,只进行了如下简单测试,对一个tenant网络进行了测试 (scenario:openstack/full_l2),这个环境下,会在每个计算节点启动一个虚拟机,然后在虚拟机里面对tcp、icmp进行测试

source ./keystonerc
shaker --output output.json --verbose \
--server-endpoint 192.168.1.44:4000 --scenario openstack/full_l2

参数说明

–output 指定把raw格式的报告存放到哪个文件

–server-endpoint 这个ip地址和端口,是运行shaker命令的本机的ip地址和端口,端口随意,不冲突就好,虚拟机中的shaker-agent会连接到这个socket上,跟shaker命令通讯,由shaker告知需要测试的项目以及相关节点信息(如ip)

–scenario Shaker 项目提供多种场景的模板进行测试,详细可以查看https://github.com/openstack/shaker/tree/master/shaker/scenarios/openstack

我们例子使用的是full_l2.yaml 来进行测试。

测试原理

同样shaker也使用heat启动各种场景下的虚拟机,这个示例使用的是 openstack/full_l2 ,根据描述,shaker会启动成对的虚拟机(master/slave),每个虚拟机起在不同的compute节点上,在虚拟机中使用iperf、netperf工具测试

heat还是会按照一个基本流程,创建网络,路由,安全组,打开相应的端口。

根据结果生成报告

shaker-report –input output.json –report a.html

shaker-report 可以根据结果生成html格式的报告

shaker

 

Snap2

 

相关链接

https://github.com/openstack/shaker/
http://pyshaker.readthedocs.io/en/latest/

Apr 092016
 

OpenStack的Mitaka版本4月7号发布,这应该是OpenStack项目管理采用大帐篷后第一个版本,发布的形式也做了很多调整,已经没有统一的发布声明。

OpenStack项目的数量已经不是以前的10几个项目,在stackalytics统计的项目,就达到538个。要统一所有的项目在相同时间发布,还是有不少问题的。例如Fuel,kolla等安装部署项目,他们的测试都是需要基于上游的包来进行,目前大部分项目都已经进入bug修复阶段,本月份应该发布正式版本。

目前大家都是通过http://stackalytics.com/网站来了解各个公司的贡献的排名。OpenStack的贡献统计,有很多维度,从不同的维度,会得出不同的结果。

关于liberty的统计分析,大家可以参考 http://www.chenshake.com/openstack-liberty-community-statistics/

下面的数据截止2016年4月9日,在未来一个月内,数据应该还是会发生变化。

还是需要强调一下,做这个统计,目的是对我们过去半年里所做的工作的一个总结,了解我们对OpenStack的社区贡献情况,和国际同行的差距。而并不是为了所谓的企业的排名,谁是第一。

还是引用这句话:No Measurement, No Improvement.

Continue reading »

Mar 252016
 

有了国内的git源,搞明白local.conf的参数,就简单很多,下面参数,我基本是一个一个逐一验证。如果有错误,希望大家指出。

开始

配置文件第一行必须是,否则不会生效。

[[local|localrc]]

修改github源

默认Devstack会从github下载所有需要的代码,包括OpenStack。这其实是导致Devstack安装时间太长的一个重要原因。

目前 git.trystack.cn 提供OpenStack的所有github的mirror。对于Devstack来说,只需要在配置文件增加3行就可以。

# use TryStack git mirror
GIT_BASE=http://git.trystack.cn
NOVNC_REPO=http://git.trystack.cn/kanaka/noVNC.git
SPICE_REPO=http://git.trystack.cn/git/spice/spice-html5.git

主机IP

这个是必须指定,否则会报错。

HOST_IP=192.168.27.128

镜像下载

安装devstack的时候,默认会下载相应的镜像,这些镜像都在国外,我们可以指定连接来下载相关镜像。下一步trystack会提供相关的镜像下载。

# Define images to be automatically downloaded during the DevStack built process.
DOWNLOAD_DEFAULT_IMAGES=False
IMAGE_URLS=http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img

IPV4

现在默认会创建网络是支持ip v6,通常我们是用不到。我是希望仅仅支持ip v4.

# only support IP v4
SERVICE_IP_VERSION=4

Keystone版本

现在默认就是支持keystone v3,除非你需要使用v2。

# only support keystone v2
ENABLE_IDENTITY_V2=True

网络

默认Devstack会创建一个网络,如果你不需要创建

#not create default network
NEUTRON_CREATE_INITIAL_NETWORKS=False

我们也可以指定相关的网络

# instead of default network
FLOATING_RANGE="192.168.27.0/24"
FIXED_RANGE="10.0.0.0/24"
Q_FLOATING_ALLOCATION_POOL=start=192.168.27.102,end=192.168.27.110
PUBLIC_NETWORK_GATEWAY="192.168.27.2"

指定版本安装

对于普通用户,想了解某个版本的功能,可以在配置文件指定版本

# Branches
KEYSTONE_BRANCH=stable/liberty
NOVA_BRANCH=stable/liberty
NEUTRON_BRANCH=stable/liberty
SWIFT_BRANCH=stable/liberty
GLANCE_BRANCH=stable/liberty
CINDER_BRANCH=stable/liberty

我们使用的Devstack,也需要使用相同的版本,这样才能避免安装失败可能性。

git clone http://git.trystack.cn/openstack-dev/devstack -b stable/liberty

默认大家都是使用devstack的master。

 

Neutron网络

这是最复杂的地方,目前devstack默认的网络还是nova network,所以你要采用Neutron,你必须

# Enabling Neutron (network) Service
disable_service n-net
enable_service q-svc
enable_service q-agt
enable_service q-dhcp
enable_service q-l3
enable_service q-meta
enable_service q-metering
enable_service neutron

vlan模式

# VLAN configuration.
Q_PLUGIN=ml2
ENABLE_TENANT_VLANS=True
TENANT_VLAN_RANGE=1100:2999

离线安装

当我们修改参数,重新运行devstack的时候,这个时候,你不希望重新下载git和操作系统的update

# Work offline
#OFFLINE=True
# Reclone each time
RECLONE=no

 

 

 

参考文档

http://markelov.org/wiki/index.php/Devstack_installation_with_VirtualBox

https://ask.openstack.org/en/question/66561/devstack-without-default-networkssubnets-routers/

http://www.gossamer-threads.com/lists/openstack/dev/29668

http://docs.openstack.org/developer/devstack/guides/neutron.html

http://blog.csdn.net/Tomstrong_369/article/details/50411878

http://www.weston.la/2014/08/blog/