最近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端
1、先把install_openstack.sh腳本上傳到伺服器裡,我上傳的伺服器目錄為/root裡,然後給予755權限;
root@openstack:~# chmod 755 install_openstack.sh
2、使用install_dev來安裝openstack的dev版本的control端
root@openstack:~# nohup bash install_openstack.sh install_dev_control &
[1] 2276
root@openstack:~# nohup: ignoring input and appending output to `nohup.out'
3、安裝過程的日志如下:
<a target="_blank" href="http://blog.51cto.com/attachment/201211/171757220.jpg"></a>
<a target="_blank" href="http://blog.51cto.com/attachment/201211/171823967.jpg"></a>
<a target="_blank" href="http://blog.51cto.com/attachment/201211/171848689.jpg"></a>
<a target="_blank" href="http://blog.51cto.com/attachment/201211/171917352.jpg"></a>
上面日志裡的帶###***###字樣的是将要進行的操作,而綠色字型代表完成操作,紅色字型代表操作失敗,在建立完成虛拟機與dashobard的時候都有登入的提示。
同時還有你安裝過程的時間通知,友善你掌握自己的部署時間掌握(比如可以利用這段時間看看電影是個不錯的選擇)
BTW:為什麼我安裝花費了88分鐘,原因是我在家裡測試,家裡是4m共享的網絡,跟我同住的哥們一直在使用qvod,是以我安裝的時間花了這樣長,一般部署一下的時間大約10-15左右。
注意:如果你想檢視詳細的日志,你可以使用sed -i 's#&>>/dev/null##g' install_openstack.sh
這樣能檢視詳細的日志情況,便于排查錯誤,建議大家在第一次安裝的時候,使用這樣安裝。
下面是dashobard的dev版本的截圖(建議大家使用谷歌的浏覽器,這個浏覽器在登入dashobard的時候,能檢視更完整的界面)
<a target="_blank" href="http://blog.51cto.com/attachment/201211/172015865.jpg"></a>
先看一下overview界面,由于我什麼都沒有,是以是空的
<a target="_blank" href="http://blog.51cto.com/attachment/201211/172050358.jpg"></a>
執行個體界面,已經有個test1的虛拟機了,狀态為error的原因是我的測試機器不支援虛拟化,也就是kvm-ok顯示為
root@openstack:~# kvm-ok
INFO: Your CPU does not support KVM extensions
KVM acceleration can NOT be used
<a target="_blank" href="http://blog.51cto.com/attachment/201211/172134421.jpg"></a>
鏡像就2個,分别是ubuntu與cirros
<a target="_blank" href="http://blog.51cto.com/attachment/201211/172204198.jpg"></a>
安全方面就有我剛才建立的oskey密鑰
其他的就不多介紹了
1、使用install_dev_compute子產品安裝
root@client:~# bash install_openstack.sh install_dev_compute
Sat Nov 24 01:35:14 CST 2012 Start install!
###network configure###
It is correct!
###mondiy env###
###install ntp###
###restart ntp service###
###install bridge iscsi###
####restart network###
###install nova###
###mondiy /etc/nova/api-paste.ini ###
###down /etc/nova/nova.conf from server###
[email protected]'s password:
nova.conf 100% 1675 1.6KB/s 00:00
###mondiy /etc/nova/nova.conf ###
###create restart service script###
###restart server###
Now,nova client is finish install!
Sat Nov 24 01:35:59 CST 2012 Finish install!
Total runtime: 45 Seconds
請記住,在安裝compute的時候,nova的配置檔案是從control端複制的,是以你在運作install_dev_compute子產品的時候,需要輸入control端的密碼,是以不能在後頭運作,除非你在compute端與control端口做了ssh信任,否則就需要手動輸入密碼。
2、檢視結果
root@client:~# nova-manage service list
Binary Host Zone Status State Updated_At
nova-consoleauth openstack nova enabled :-) 2012-11-23 17:38:13
nova-cert openstack nova enabled :-) 2012-11-23 17:38:13
nova-compute openstack nova enabled :-) 2012-11-23 17:38:15
nova-scheduler openstack nova enabled :-) 2012-11-23 17:38:13
nova-network openstack nova enabled :-) 2012-11-23 17:38:14
nova-compute client nova enabled :-) 2012-11-23 17:38:16
nova-network client nova enabled :-) 2012-11-23 17:38:13
可以發現已經安裝成功。
有的時候為了測試需要或者你安裝錯誤的時候,需要删除openstack,是以我提供了一個删除dev版本的删除子產品
1、先檢視本機是否安裝了openstack,我選擇檢視虛拟機
root@openstack:~# source /root/env_config
root@openstack:~# nova list
+--------------------------------------+-------+--------+----------+
| ID | Name | Status | Networks |
| 5584c108-38a4-4d10-9a6f-6fa1bf7ec5d8 | test1 | ERROR | |
可以看到安裝了虛拟機,也就是說安裝了openstack
現在在檢視openstack的版本
root@openstack:~# nova-manage version list
2012.1.3-dev (2012.1.3-LOCALBRANCH:LOCALREVISION)
是dev版本的
2、現在開始使用install_dev_delete子產品删除dev版本的openstack
root@openstack:~# bash install_openstack.sh install_dev_control_delete
Fri Nov 23 23:22:55 CST 2012 Start install!
###uninstall OpenStack and mysql###
###uninstall other tools###
###clean cache###
###Uninstall openstack finish,please reboot system###
Fri Nov 23 23:24:35 CST 2012 Finish install!
Total runtime: 1 Minutes
可以看到删除完成,下面讓我們測試一下
3、root@openstack:~# mysql
The program 'mysql' is currently not installed. You can install it by typing:
apt-get install mysql-client-core-5.5
root@openstack:~# keystone
The program 'keystone' is currently not installed. You can install it by typing:
apt-get install python-keystoneclient
root@openstack:~# nova
-bash: /usr/bin/nova: No such file or directory
root@openstack:~# nova llist
root@openstack:~# glance
The program 'glance' is currently not installed. You can install it by typing:
apt-get install glance-client
可以看到以上的軟體都是删除了,也就代表dev版本的openstack删除成功。
1、使用install_dev_compute_delete
root@client:~# bash install_openstack.sh install_dev_compute_delete
Sat Nov 24 01:39:11 CST 2012 Start install!
###uninstall OpenStack###
Sat Nov 24 01:39:29 CST 2012 Finish install!
Total runtime: 18 Seconds
2、檢查是否删除成功
在compute端
-bash: /usr/bin/nova-manage: No such file or directory
可以發現已經删除
在control端
root@openstack:~# nova-manage service list
nova-consoleauth openstack nova enabled :-) 2012-11-23 17:40:45
nova-cert openstack nova enabled :-) 2012-11-23 17:40:45
nova-compute openstack nova enabled :-) 2012-11-23 17:40:37
nova-scheduler openstack nova enabled :-) 2012-11-23 17:40:45
nova-network openstack nova enabled :-) 2012-11-23 17:40:45
nova-compute client nova enabled XXX 2012-11-23 17:39:08
nova-network client nova enabled XXX 2012-11-23 17:39:04
也已經删除。
注意:在進行子產品化安裝openstack的folsom版本的wlan模式的時候,對于cinder安裝完成後,需要單獨劃個分區給cinder使用,是以你安裝的機器裡應該有一個單獨的硬碟分區,下面是我的分區情況。
root@openstack:~# fdisk -l
Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders, total 62914560 sectors
Units = sectors of 1 * 512512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000b8d5a
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 499711 248832 83 Linux
/dev/sda2 501758 62912511 31205377 5 Extended
/dev/sda5 501760 62912511 31205376 8e Linux LVM
Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders, total 16777216 sectors
Disk identifier: 0x00000000
Disk /dev/sdb doesn't contain a valid partition table
Disk /dev/mapper/openstack-root: 29.8 GB, 29804724224 bytes
255 heads, 63 sectors/track, 3623 cylinders, total 58212352 sectors
Disk /dev/mapper/openstack-root doesn't contain a valid partition table
Disk /dev/mapper/openstack-swap_1: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders, total 4194304 sectors
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端。
root@openstack:~# chmod 755 install_openstack.sh
root@openstack:~# nohup bash install_openstack.sh install_folsom_control &
[1] 1371
下面是日志的截圖
<a target="_blank" href="http://blog.51cto.com/attachment/201211/172914686.jpg"></a>
<a target="_blank" href="http://blog.51cto.com/attachment/201211/172953969.jpg"></a>
<a target="_blank" href="http://blog.51cto.com/attachment/201211/173014380.jpg"></a>
<a target="_blank" href="http://blog.51cto.com/attachment/201211/173037873.jpg"></a>
可以看到截圖裡的It is correct!是綠色的,這代表上面的操作是正确的。
我們可以通過驗收來區分志氣的操作是否正确的執行。
而且還可以通過日志知道你的登入位址與密碼,以及腳本運作的時間,能更友善你掌握安裝的時間。
下面我們在檢視一下版本問題
2012.2 (2012.2-LOCALBRANCH:LOCALREVISION)
可以看到這個是2012年的第二個版本,也就是Folsom版本。
這裡在講一下小技巧。
講一下openstack的小技巧,如何的檢視你目前的openstack是屬于什麼版本(目前已經有A-F版本)
1、使用nova-manage version list檢視
可以看到我這個是F版本的,為什麼?上面檢視的結果裡的2012.2是版本号,2012年的第2版,而openstack一年隻釋出2個版本是以可以判斷是F版。
E版的檢視為
2012.1 (2012.2-LOCALBRANCH:LOCALREVISION)
是2012年的第一個版本。
2、使用cinder-manage version lis檢視
root@openstack:~# cinder-manage version list
cinder是F版本裡釋出的,代替了nova volume,是以你看到 有cinder元件就能知道是F版本。
然後我們在登入一下最新的horizon來體驗一下。
<a target="_blank" href="http://blog.51cto.com/attachment/201211/173244341.jpg"></a>
首頁由于我什麼都沒有做,是以是空的。
執行個體也由于我沒有建立,是以為空。
<a target="_blank" href="http://blog.51cto.com/attachment/201211/173351885.jpg"></a>
這個是啟動的服務,其實你一看cinder與horizon就知道此版本是Folsom。
<a target="_blank" href="http://blog.51cto.com/attachment/201211/173427264.jpg"></a>
這個模版跟之前的dev版本差不多。
<a target="_blank" href="http://blog.51cto.com/attachment/201211/173509243.jpg"></a>
鏡像就是腳本裡上傳的那2個。
<a target="_blank" href="http://blog.51cto.com/attachment/201211/173539268.jpg"></a>
項目的話,就是keystone-data.sh這個腳本建立的。
<a target="_blank" href="http://blog.51cto.com/attachment/201211/173617902.jpg"></a>
這個使用者是使用keystone-endpoints.sh腳本建立的。
<a target="_blank" href="http://blog.51cto.com/attachment/201211/173650325.jpg"></a>
定量的這些參數。
左側的admin裡的頁面由于在之前的dev版本給大家展示了,是以現在就不一樣給大家展示了。
1、檢測folsom端是否安裝完成
可以看到已經安裝完成
2、運作install_folsom_control_delete子產品
root@openstack:~# bash install_openstack.sh install_folsom_control_delete
Sat Nov 24 02:55:55 CST 2012 Start install!
###uninstall mysql###
###delete mysql database###
Sat Nov 24 02:57:42 CST 2012 Finish install!
3、測試是否删除folsom的control端
root@openstack:~# mysql
root@openstack:~# cinder-manage version
-bash: /usr/bin/cinder-manage: No such file or directory
現在各個子產品都講完了,如果大家對子產品不了解的話,可以使用bash install_openstack.sh進行檢視有哪些可以使用的子產品。
root@openstack:~# bash install_openstack.sh
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運作腳本出現的一下問題
root@openstack:~# sh install_openstack.sh
install_openstack.sh: 9: install_openstack.sh: Syntax error: "(" unexpected
這個是由于在ubuntu裡,子產品不能使用function,而在redhat與centos都可以,是以你如果非得使用sh運作腳本的話,就可以使用sed -i 's#function ##' install_openstack.sh,但還是建議大家使用bash運作腳本。
如果各位還有問題可以留言,我會及時的為大家解答。
BTW:如果大家認為我寫的不錯,希望能給我的部落格投個票,謝謝!
<a href="http://blog.51cto.com/contest2012/2382721">http://blog.51cto.com/contest2012/2382721</a>
<a href="http://down.51cto.com/data/2361827" target="_blank">附件:http://down.51cto.com/data/2361827</a>
本文轉自 reinxu 51CTO部落格,原文連結:http://blog.51cto.com/dl528888/1069768,如需轉載請自行聯系原作者