对于初学者来说,OpenStack手工部署相当麻烦, 而且需要花较多时间学习.不过我们可以使用部署脚本来安装OpenStack.


 网上有一款名叫DevStack的号称最傻瓜的OpenStack部署工具.用了一下觉得的确挺傻瓜的.组件是从github上面直接拉下来,不仅慢不说,连版本兼容都有可能出问题.安装就用了4个小时.想要更改参数更是只能重来.更可恶的是它会使用python setup脚本把一些可能过期的包直接添加到系统的python库里,引发一大堆错误.基本上用DevStack安装失败了可以重装系统再来了.


 OpenShit是一款能够在Ubuntu14.04系统上快速部署Openstack的小工具,它使用Shell脚本和Python脚本完成对 Openstack各组件的安装和配置.并且可以方便的更改配置参数重新配置,重启服务清空数据库等等.利用命令可以进行完全的自动化安装和配置.以下是 OpenShit的地址


OpenShit命令介绍


 ./openshit.sh <--all|service_name> start|stop|restart

 可对各个(或者全部)Openstack组件进行启动,停止,重启操作.


 ./openshit.sh <--all|service_name> install|uninstall|download

 可对Openstack各个组件进行 安装,卸载,下载包 操作


 ./openshit.sh <--all|service_name> config

 可以配置组建建立数据库, 原先的配置文件在config-backup文件夹中按照时间备份起来,使用rollback.sh脚本可以方便的回滚配置文件改动


 ./openshit.sh <--all|service_name> clean

 可以清除服务的数据库, 若服务出问题了可以直接清掉数据库然后重新config 


 接下来我们使用OpenShit在Ubuntu14.04上部署OpenStack.这里有几个小要求:


 1. Ubuntu14.04分区一定要有足够的空间.OpenStack在创建实例的时候会使用分区的空间,空间不够则无法创建实例.测试用Ubuntu14.04分了100G,足够使用了.


  2. 建议最好是新装的ubuntu分区.如果装过神马DevStack没装成功一堆垃圾留在系统库里再用OpenShit不成功那就不好意思了.


不多说现在开始

  1.安装git, 使用git下载openshit

   git  clone https://github.com/windworst/openshit.git.


  2.修改配置文件setting.conf.

   里面有很多密码:数据库密码,服务密码.默认的可以更改,不改也没什么.

   改变网络配置.配置文件内IP值都设置称自己的IP, 网卡设置成自己的网卡(默认为eth0).


 3.配置文件修改完成后开始安装

   ./openshit.sh --all install.

   这个命令会 问你是否需要配置软件源, 第一次使用openshit请选择y, 所以命令可以这样写:

   echo y | ./openshit.sh --all install


  4.一段时间后安装完成,请输入

    ./openshit.sh --all config

    会根据setting.conf的值修改各个组件的配置文件以及数据库配置.


  5.完成后

    运行source admin-env.sh; nova service-list 查看服务状态若都为up安装成功

    在浏览器内打开 http://localhost/horizon即可看到Openstack管理界面输入密码可登陆


现在OpenStack成功部署到了Ubuntu14.04服务器上.


  为了成功运行一个实例,我们需要制作并上传一个镜像, 配置网络,启动实例.

 这里制作一个ubuntu14 server 的镜像

 1. 制作镜像

  qemu-img create -f qcow2 ubuntu.img 20G

  kvm -cdrom ubuntu-14.04-server-amd64.iso -drive file=ubuntu.img,if=virtio,index=0 -boot d -net nic -net user 

  这里就是直接从光盘安装ubuntu14-server了 装好就行


  2.上传镜像

 在openshit目录中 执行 source admin-env.sh

  执行

     glance p_w_picpath-create --name "ubuntu" --file ubunut.img --disk-format qcow2 --container-format bare --is-public True --progress

  进度条快速滚过,上传完成


 3. 创建网络

    在openshit目录中 执行 source admin-env.sh (前面执行过了这里就不用执行了)

    执行

      nova network-create v-net --bridge br100 --multi-host T--fixed-range-v4 10.0.1.0/29

    这里 v-net是网络名字 10.0.1.0/29 是网段和要分配的主机数量 不要设置网段跟本网段一样,否则蛋疼超乎你想象

    执行

      nova net-list

    可以看到刚才创建的网络


  4. 创建实例

    在web管理端 镜像 栏内 点 运行 即可创建实例 (会分配刚才创建网络的ip地址)

    点击控制台,可以通过vnc看到虚拟机的屏幕

    这里有个问题 虚拟机和主机能互相ping通(需要关掉防火墙),不过无法访问外网,可能是哪里没有设置.


到这里实例已经跑起来了,文章也讲完了