利用devstack部署All in one OpenStack

    DevStack我就不多介绍了,官网在这里:devstack.org。只是记一个流水账,从裸机开始记录一下devstack怎么搭建openstack。网上有很多这类的资料,官网上也有。但是总是不全面,这些资料中间总会少那么几步。我力争做到,按这篇博客做下来,不用再参考别的文档,就可以把环境搭建起来。

系统版本:fedora 20

一、用git clone devstack到本地

首先要安装git(说了一句废话。。。)。yum install git

建议用国内的镜像,比如网易的就不错,配置方式在这里:http://mirrors.163.com/.help/fedora.html

然后克隆devstack到本地:git clone https://github.com/openstack-dev/devstack.git(需要注意的是,不要克隆到root文件夹里,不然只有会有好多权限问题,克隆到home下最好,我是以root用户搞的,如果你没有以root登陆,应该没有这个问题)

一下这两步是为了在juno版本上搭建,如果想在master分支上搭建,就不用做这两步了:

切换分支:git checkout stable/juno

二、创建stack用户(这一步是网上的资料几乎都没有提到的,但是必须要做的)

克隆完成后,克隆下来的代码就在本目录的devstack文件夹下面了

用DevStack自带的脚本创建stack用户,脚本的路径在./devstack/tools/create-stack-user.sh

将devstack文件夹下所有的文件的所有权赋给stack用户:chown -R stack:stack devstack

给所有用户读写权限:chmod -R 777 devstack,我在这里偷了个懒,用了777权限。


三、设置代理(如果你的网络有够NB,就无视这一节吧)

部署的过程中,要从github上下载所有的OpenStack代码,速度会非常慢,所以我搞了个goagent的代理,具体怎么设置请参考:https://github.com/goagent/goagent

部署好goagent以后,用export http_proxy=http://127.0.0.1:8087来设置代理

然后打开devstack目录下面的stackrc找到这一行:# Base GIT Repo URL,把后面的git://改成http://

四、开始安装

切换当前用户为stack:su stack

运行devstack下面的stack.sh开始安装

按照提示输入配置信息就行了

安装的过程中回报一些错误,根据实际打出的log来解决就行了,一下是我遇到的一些错误:

  • 报Python的某一个命令没找到,或者版本低,或者由于网络超时下载失败。那么就用pip install这个命令安装就行了,如果要更新,则加上--upgrade这个参数
  • clone的过程中报超时,手动运行一下clone命令就行了。再次运行stack不会重新clone

行了,做完以上这些,如果你的RP一直不错的话,喝杯茶,洗个澡,过上一个小时再来看看结果吧。如果平时积怨太多,不好意思中途会时不时的报错,不过错误的log还是蛮详尽的,根据log排查就行了。我所遇到的基本上就是下载超时,更新失败这些的,手动下载安装、更新以后,重新运行stack就行了。而我是属于那种平时积怨太多的,中间不停的有问题出现,不过还好都是以上两种。

五、一些小窍门

在devstack/sample文件夹下面有个local.conf文件,这里面相当于自定义的一些配置,改好以后重命名成localrc然后放到devstack下面就生效了。

其中HOST_IP这个属性可以不用写成IP(如果不设置,stack默认的是127.0.0.1),可是写成hostname,比如junohost,然后在/etc/hosts里面再把junohost设置成本机的IP。我这样做是为了在虚拟机上部署偷个懒,这样搞了以后,虚拟机的镜像可以直接给别人用,只需要把junohost对应的IP改一下就行,不用再费事部署了。好像有点devstack分发的赶脚,哈哈终于还是能和流行的概念沾点边啊!

六、注意事项

  • 重启机子以后,需要用losetup命令把对应的lvm设备重新建立一下,不然cinder是启动不起来的。然后用rejoin-stack.sh这个脚本就行了。
  • 我还遇到一个比较坑的就是,重启机器后,tgtd、MySQL和RabbitMQ这三个服务都没有自动启动,我也懒得查为啥了。每次开机手动启动。。。


希望看这篇博客的同学们一次成功啊!

你可能感兴趣的:(OpenStack)