OpenStack项目系列介绍(3) Devstack
source link: http://www.chenshake.com/openstack-project-series-3-devstack/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
OpenStack项目系列介绍(3) Devstack – 陈沙克日志
使用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。
这样Devstack成功概率会大大提高。
另外devstack还会下载image,下载的过程也是非常缓慢。trystack也提供大家常用的image下载。
默认无论是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
看图,就应该很清楚 http://docs.openstack.org/developer/devstack/guides/neutron.html
设置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设置有关。
装完后,虚拟机是不能重启的,所以你最好是当前状态做一个快照。都是采用暂停。
用admin登录Dashbord,为了测试,我们创建一个project:test,给project创建一个用户
使用该该账户重新登录Dashboard
大概的步骤
- 创建lan,分配内网IP地址段,记得设置dns
- 创建router,连接外网,同时连接lan
- 创建test安全组,允许tcp,udp,icmp全部访问
- 上传秘钥,或者创建秘钥
- 创建虚拟机,分配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
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK