前言

         最近2周没事,所以研究了一下openstack,主要研究dev与folsom版本,还没有等我熟悉就又有python的运维管理项目,所以为了怕以后忘记,就先简单的做了一个模块化安装openstack的dev与folsom的control端的安装脚本,分析给大家希望大家能多提已经。
 
关于脚本的内容,由于内容过多,在博客里无法在一个页面里展示,所以就上传到附件里,大家可以查看附件,脚本里都有英文的注释。
本脚本里有6个模块,分别为:
1、安装openstack的dev版本control端的install_dev_control;
2、安装openstack的dev版本compute端的install_dev_compute;
3、删除openstack的dev版本的install_dev_control_delete;
4、删除openstack的dev版本的install_dev_compute_delete;
5、安装openstack的folsom版本的control端的install_folsom_control;
6、删除openstack的folsom版本的control端的install_folsom_control_delete。
下面的文章会有专门的实例与图片来为大家展示脚本的具体操作与相应结果展示。
下面我的文章结构:
一、安装openstack的dev版本control端
二、安装dev版本的compute端
三、删除dev版本的openstack所有服务
四、删除dev版本的compute端
五、安装openstack的folsom版本的control端
六、删除folsom的control端

一、安装openstack的dev版本control端

1、先把install_openstack.sh脚本上传到服务器里,我上传的服务器目录为/root里,然后给予755权限;
 
  
  1. root@openstack:~# chmod 755 install_openstack.sh 
2、使用install_dev来安装openstack的dev版本的control端
 
  
  1. root@openstack:~# nohup bash install_openstack.sh install_dev_control &  
  2. [1] 2276  
  3. root@openstack:~# nohup: ignoring input and appending output to `nohup.out'  
3、安装过程的日志如下:

上面日志里的带###***###字样的是将要进行的操作,而绿色字体代表完成操作,红色字体代表操作失败,在创建完成虚拟机与dashobard的时候都有登录的提示。
同时还有你安装过程的时间通知,方便你掌握自己的部署时间掌握(比如可以利用这段时间看看电影是个不错的选择)
BTW:为什么我安装花费了88分钟,原因是我在家里测试,家里是4m共享的网络,跟我同住的哥们一直在使用qvod,所以我安装的时间花了这样长,一般部署一下的时间大约10-15左右。
注意:如果你想查看详细的日志,你可以使用sed -i 's#&>>/dev/null##g' install_openstack.sh
这样能查看详细的日志情况,便于排查错误,建议大家在第一次安装的时候,使用这样安装。
下面是dashobard的dev版本的截图(建议大家使用谷歌的浏览器,这个浏览器在登录dashobard的时候,能查看更完整的界面)

先看一下overview界面,由于我什么都没有,所以是空的

实例界面,已经有个test1的虚拟机了,状态为error的原因是我的测试机器不支持虚拟化,也就是kvm-ok显示为
 
  
  1. root@openstack:~# kvm-ok  
  2. INFO: Your CPU does not support KVM extensions  
  3. KVM acceleration can NOT be used  

镜像就2个,分别是ubuntu与cirros

安全方面就有我刚才创建的oskey密钥
其他的就不多介绍了
二、安装dev版本的compute端
1、使用install_dev_compute模块安装
 
  
  1. root@client:~# bash install_openstack.sh install_dev_compute  
  2. Sat Nov 24 01:35:14 CST 2012 Start install!  
  3. ###network configure###  
  4.  It is correct!  
  5. ###mondiy env###  
  6.  It is correct!  
  7. ###install ntp###  
  8.  It is correct!  
  9. ###restart ntp service###  
  10.  It is correct!  
  11. ###install bridge iscsi###  
  12.  It is correct!  
  13. ####restart network###  
  14.  It is correct!  
  15. ###install nova###  
  16.  It is correct!  
  17. ###mondiy /etc/nova/api-paste.ini ###  
  18.  It is correct!  
  19. ###down /etc/nova/nova.conf from server###  
  20. root@192.168.1.30's password:   
  21. nova.conf                                                                                                                                                    100% 1675     1.6KB/s   00:00      
  22. ###mondiy /etc/nova/nova.conf ###  
  23.  It is correct!  
  24. ###create restart service script###  
  25.  It is correct!  
  26. ###restart server###  
  27.  It is correct!  
  28.  Now,nova client is finish install!  
  29. Sat Nov 24 01:35:59 CST 2012 Finish install!  
  30. Total runtime: 45 Seconds  
请记住,在安装compute的时候,nova的配置文件是从control端复制的,所以你在运行install_dev_compute模块的时候,需要输入control端的密码,所以不能在后头运行,除非你在compute端与control端口做了ssh信任,否则就需要手动输入密码。
2、查看结果
 
  
  1. root@client:~# nova-manage service list  
  2. Binary           Host                                 Zone             Status     State Updated_At  
  3. nova-consoleauth openstack                            nova             enabled    :-)   2012-11-23 17:38:13  
  4. nova-cert        openstack                            nova             enabled    :-)   2012-11-23 17:38:13  
  5. nova-compute     openstack                            nova             enabled    :-)   2012-11-23 17:38:15  
  6. nova-scheduler   openstack                            nova             enabled    :-)   2012-11-23 17:38:13  
  7. nova-network     openstack                            nova             enabled    :-)   2012-11-23 17:38:14  
  8. nova-compute     client                               nova             enabled    :-)   2012-11-23 17:38:16  
  9. nova-network     client                               nova             enabled    :-)   2012-11-23 17:38:13  
可以发现已经安装成功。
三、删除dev版本的openstack所有服务
有的时候为了测试需要或者你安装错误的时候,需要删除openstack,所以我提供了一个删除dev版本的删除模块
1、先查看本机是否安装了openstack,我选择查看虚拟机
 
  
  1. root@openstack:~# source /root/env_config   
  2. root@openstack:~# nova list  
  3. +--------------------------------------+-------+--------+----------+  
  4. |                  ID                  |  Name | Status | Networks |  
  5. +--------------------------------------+-------+--------+----------+  
  6. | 5584c108-38a4-4d10-9a6f-6fa1bf7ec5d8 | test1 | ERROR  |          |  
  7. +--------------------------------------+-------+--------+----------+  
可以看到安装了虚拟机,也就是说安装了openstack
现在在查看openstack的版本
 
  
  1. root@openstack:~# nova-manage version list  
  2. 2012.1.3-dev (2012.1.3-LOCALBRANCH:LOCALREVISION)  
是dev版本的
2、现在开始使用install_dev_delete模块删除dev版本的openstack
 
  
  1. root@openstack:~# bash install_openstack.sh install_dev_control_delete  
  2. Fri Nov 23 23:22:55 CST 2012 Start install!  
  3. ###uninstall OpenStack and mysql###  
  4.  It is correct!  
  5. ###uninstall other tools###  
  6.  It is correct!  
  7. ###clean cache###  
  8.  It is correct!  
  9. ###Uninstall openstack finish,please reboot system###  
  10. Fri Nov 23 23:24:35 CST 2012 Finish install!  
  11. Total runtime: 1 Minutes  
可以看到删除完成,下面让我们测试一下
 
  
  1. 3、root@openstack:~# mysql  
  2. The program 'mysql' is currently not installed.  You can install it by typing:  
  3. apt-get install mysql-client-core-5.5  
  4. root@openstack:~# keystone  
  5. The program 'keystone' is currently not installed.  You can install it by typing:  
  6. apt-get install python-keystoneclient  
  7. root@openstack:~# nova  
  8. -bash: /usr/bin/nova: No such file or directory  
  9. root@openstack:~# nova llist  
  10. -bash: /usr/bin/nova: No such file or directory  
  11. root@openstack:~# glance  
  12. The program 'glance' is currently not installed.  You can install it by typing:  
  13. apt-get install glance-client  
可以看到以上的软件都是删除了,也就代表dev版本的openstack删除成功。
四、删除dev版本的compute端
1、使用install_dev_compute_delete
 
  
  1. root@client:~# bash install_openstack.sh install_dev_compute_delete  
  2. Sat Nov 24 01:39:11 CST 2012 Start install!  
  3. ###uninstall OpenStack###  
  4.  It is correct!  
  5. ###clean cache###  
  6.  It is correct!  
  7. ###Uninstall openstack finish,please reboot system###  
  8. Sat Nov 24 01:39:29 CST 2012 Finish install!  
  9. Total runtime: 18 Seconds  
2、检查是否删除成功
在compute端
 
  
  1. root@client:~# nova-manage service list  
  2. -bash: /usr/bin/nova-manage: No such file or directory  
可以发现已经删除
在control端
 
  
  1. root@openstack:~# nova-manage service list  
  2. Binary           Host                                 Zone             Status     State Updated_At  
  3. nova-consoleauth openstack                            nova             enabled    :-)   2012-11-23 17:40:45  
  4. nova-cert        openstack                            nova             enabled    :-)   2012-11-23 17:40:45  
  5. nova-compute     openstack                            nova             enabled    :-)   2012-11-23 17:40:37  
  6. nova-scheduler   openstack                            nova             enabled    :-)   2012-11-23 17:40:45  
  7. nova-network     openstack                            nova             enabled    :-)   2012-11-23 17:40:45  
  8. nova-compute     client                               nova             enabled    XXX   2012-11-23 17:39:08  
  9. nova-network     client                               nova             enabled    XXX   2012-11-23 17:39:04  
也已经删除。

 

五、安装openstack的folsom版本的control端
注意:在进行模块化安装openstack的folsom版本的wlan模式的时候,对于cinder安装完成后,需要单独划个分区给cinder使用,所以你安装的机器里应该有一个单独的硬盘分区,下面是我的分区情况。
 
  
  1. root@openstack:~# fdisk -l  
  2.  
  3. Disk /dev/sda: 32.2 GB, 32212254720 bytes  
  4. 255 heads, 63 sectors/track, 3916 cylinders, total 62914560 sectors  
  5. Units = sectors of 1 * 512512 = 512 bytes  
  6. Sector size (logical/physical): 512 bytes / 512 bytes  
  7. I/O size (minimum/optimal): 512 bytes / 512 bytes  
  8. Disk identifier: 0x000b8d5a  
  9.  
  10.    Device Boot      Start         End      Blocks   Id  System  
  11. /dev/sda1   *        2048      499711      248832   83  Linux  
  12. /dev/sda2          501758    62912511    31205377    5  Extended  
  13. /dev/sda5          501760    62912511    31205376   8e  Linux LVM  
  14.  
  15. Disk /dev/sdb: 8589 MB, 8589934592 bytes  
  16. 255 heads, 63 sectors/track, 1044 cylinders, total 16777216 sectors  
  17. Units = sectors of 1 * 512512 = 512 bytes  
  18. Sector size (logical/physical): 512 bytes / 512 bytes  
  19. I/O size (minimum/optimal): 512 bytes / 512 bytes  
  20. Disk identifier: 0x00000000  
  21.  
  22. Disk /dev/sdb doesn't contain a valid partition table  
  23.  
  24. Disk /dev/mapper/openstack-root: 29.8 GB, 29804724224 bytes  
  25. 255 heads, 63 sectors/track, 3623 cylinders, total 58212352 sectors  
  26. Units = sectors of 1 * 512512 = 512 bytes  
  27. Sector size (logical/physical): 512 bytes / 512 bytes  
  28. I/O size (minimum/optimal): 512 bytes / 512 bytes  
  29. Disk identifier: 0x00000000  
  30.  
  31. Disk /dev/mapper/openstack-root doesn't contain a valid partition table  
  32.  
  33. Disk /dev/mapper/openstack-swap_1: 2147 MB, 2147483648 bytes  
  34. 255 heads, 63 sectors/track, 261 cylinders, total 4194304 sectors  
  35. Units = sectors of 1 * 512512 = 512 bytes  
  36. Sector size (logical/physical): 512 bytes / 512 bytes  
  37. I/O size (minimum/optimal): 512 bytes / 512 bytes  
  38. Disk identifier: 0x00000000  
  39.  
  40. Disk /dev/mapper/openstack-swap_1 doesn't contain a valid partition table  
可以看出我的/dev/sda是个系统在使用,而/dev/sdb这个8g的分区还没有使用。这个分区就划分给cinder使用了。
在脚本里你如果想自动化安装,那么就需要在脚本里修改这个部分,把/dev/sdb这个分区换成你自己的分区。
现在开始安装,先把install_openstack.sh脚本上传到系统里,我上传的目录是root,然后给予755权限,最后选择安装install_folsom_control模块来安装openstack的F版本的control端。
 
  
  1. root@openstack:~# chmod 755 install_openstack.sh  
  2. root@openstack:~# nohup bash install_openstack.sh install_folsom_control &  
  3. [1] 1371  
  4. root@openstack:~# nohup: ignoring input and appending output to `nohup.out'  

下面是日志的截图

可以看到截图里的It is correct!是绿色的,这代表上面的操作是正确的。
我们可以通过验收来区分志气的操作是否正确的执行。
而且还可以通过日志知道你的登录地址与密码,以及脚本运行的时间,能更方便你掌握安装的时间。
下面我们在查看一下版本问题
 
  
  1. root@openstack:~# nova-manage version list  
  2. 2012.2 (2012.2-LOCALBRANCH:LOCALREVISION)  
可以看到这个是2012年的第二个版本,也就是Folsom版本。
这里在讲一下小技巧。
讲一下openstack的小技巧,如何的查看你当前的openstack是属于什么版本(目前已经有A-F版本)
1、使用nova-manage version list查看
 
  
  1. root@openstack:~# nova-manage version list  
  2. 2012.2 (2012.2-LOCALBRANCH:LOCALREVISION)  
可以看到我这个是F版本的,为什么?上面查看的结果里的2012.2是版本号,2012年的第2版,而openstack一年只发布2个版本所以可以判断是F版。
E版的查看为
 
  
  1. root@openstack:~# nova-manage version list  
  2. 2012.1 (2012.2-LOCALBRANCH:LOCALREVISION)  
是2012年的第一个版本。
2、使用cinder-manage version lis查看
 
  
  1. root@openstack:~# cinder-manage version list  
  2. 2012.2 (2012.2-LOCALBRANCH:LOCALREVISION)  
cinder是F版本里发布的,代替了nova volume,所以你看到 有cinder组件就能知道是F版本。
然后我们在登录一下最新的horizon来体验一下。

首页由于我什么都没有做,所以是空的。

 

实例也由于我没有创建,所以为空。

这个是启动的服务,其实你一看cinder与horizon就知道此版本是Folsom。

这个模版跟之前的dev版本差不多。

镜像就是脚本里上传的那2个。

项目的话,就是keystone-data.sh这个脚本创建的。

这个用户是使用keystone-endpoints.sh脚本创建的。

定量的这些参数。
左侧的admin里的页面由于在之前的dev版本给大家展示了,所以现在就不一样给大家展示了。
六、删除folsom的control端
1、检测folsom端是否安装完成
 
  
  1. root@openstack:~# nova-manage version list  
  2. 2012.2 (2012.2-LOCALBRANCH:LOCALREVISION)  
  3. root@openstack:~# cinder-manage version list  
  4. 2012.2 (2012.2-LOCALBRANCH:LOCALREVISION)  
可以看到已经安装完成
2、运行install_folsom_control_delete模块
 
  
  1. root@openstack:~# bash install_openstack.sh install_folsom_control_delete  
  2. Sat Nov 24 02:55:55 CST 2012 Start install!  
  3. ###uninstall OpenStack and mysql###  
  4.  It is correct!  
  5. ###uninstall mysql###  
  6.  It is correct!  
  7. ###delete mysql database###  
  8.  It is correct!  
  9. ###uninstall other tools###  
  10.  It is correct!  
  11. ###clean cache###  
  12.  It is correct!  
  13. ###Uninstall openstack finish,please reboot system###  
  14. Sat Nov 24 02:57:42 CST 2012 Finish install!  
  15. Total runtime: 1 Minutes  
3、测试是否删除folsom的control端
 
  
  1. root@openstack:~# mysql  
  2. The program 'mysql' is currently not installed.  You can install it by typing:  
  3. apt-get install mysql-client-core-5.5  
  4. root@openstack:~# nova  
  5. -bash: /usr/bin/nova: No such file or directory  
  6. root@openstack:~# cinder-manage version  
  7. -bash: /usr/bin/cinder-manage: No such file or directory  

现在各个模块都讲完了,如果大家对模块不了解的话,可以使用bash install_openstack.sh进行查看有哪些可以使用的模块。

 
  
  1. root@openstack:~# bash install_openstack.sh   
  2. Usage:install_openstack.sh {install_dev_control|install_dev_control_delete|install_dev_compute|install_dev_compute_delete|install_folsom_control|install_folsom_control_delete} 

对于为什么在使用sh运行脚本出现的一下问题

 
  
  1. root@openstack:~# sh install_openstack.sh   
  2. install_openstack.sh: 9: install_openstack.sh: Syntax error: "(" unexpected 

这个是由于在ubuntu里,模块不能使用function,而在redhat与centos都可以,所以你如果非得使用sh运行脚本的话,就可以使用sed -i 's#function ##' install_openstack.sh,但还是建议大家使用bash运行脚本。

如果各位还有问题可以留言,我会及时的为大家解答。

BTW:如果大家认为我写的不错,希望能给我的博客投个票,谢谢!

http://blog.51cto.com/contest2012/2382721