OpenStack是一個(gè)開(kāi)源的云計(jì)算管理平臺(tái)項(xiàng)目,支持幾乎所有類型的云環(huán)境,項(xiàng)目目標(biāo)是提供實(shí)施簡(jiǎn)單、可大規(guī)模擴(kuò)展、豐富、標(biāo)準(zhǔn)統(tǒng)一的云計(jì)算管理平臺(tái)。本文我們來(lái)談?wù)凞evStack安裝和配置OpenStack開(kāi)發(fā)環(huán)境。
OpenStack的安裝和配置有一點(diǎn)復(fù)雜,特別對(duì)于初學(xué)者來(lái),第一次安裝OpenStack時(shí)經(jīng)常會(huì)碰到很多的問(wèn)題。不過(guò)在Openstack社區(qū)中,一些開(kāi)發(fā)者開(kāi)發(fā)了一些自動(dòng)化腳本來(lái)方便搭建OpenStack的開(kāi)發(fā)環(huán)境,其中,DevStack是其中相對(duì)比較完善的,也是OpenStack官方網(wǎng)站推薦的用于了解OpenStack時(shí)搭建環(huán)境的方法。
DevStack是由Rackspace公司開(kāi)源的一套用Bash編寫的自動(dòng)化腳本,用于為OpenStack構(gòu)建和配置一整套完整的開(kāi)發(fā)環(huán)境。DevStack的官方網(wǎng)站為,可以到該網(wǎng)站上查看DevStack腳本的使用方法及其工作原理。
目前,DevStack對(duì)Ubuntu 12.04和Fedora 16及以上的Ubuntu和Fedora系統(tǒng)有比較完善的支持,選擇在其他操作系統(tǒng)上使用DevStack可能需要做一些修改才能正常工作。所以,這里的示例以在Ubuntu 12.04 系統(tǒng)上使用DevStack腳本來(lái)搭建OpenStack開(kāi)發(fā)環(huán)境,其過(guò)程非常簡(jiǎn)單,只分為如下兩個(gè)步驟:
(1)下載DevStack的代碼倉(cāng)庫(kù),命令行如下:
git clone git://github.com/openstack-dev/devstack.git
(2)運(yùn)行stack.sh腳本,命令行操作如下:
jay@my-ubuntu:~$ cd devstack/
jay@my-ubuntu:~/devstack$ ./stack.sh
Horizon is now available at
Keystone is serving at :5000/v2.0/
Examples on using novaclient command line is in exercise.sh
The default users are: admin and demo
The password: admin
This is your host ip: 192.168.158.31
stack.sh completed in 1663 seconds.
#看到最后這樣的信息,說(shuō)明OpenStack已經(jīng)成功安裝和配置
由于stack.sh腳本會(huì)自動(dòng)下載大量的被依賴的軟件包和OpenStack源代碼,還要進(jìn)行各種配置文件和數(shù)據(jù)庫(kù)的初始化,所以第一次執(zhí)行stack.sh腳本比較花費(fèi)時(shí)間,大約需要幾十分鐘到一個(gè)小時(shí)不等(根據(jù)處理器速度和網(wǎng)絡(luò)帶寬的不同而不同)。
在Ubuntu系統(tǒng)中運(yùn)行stack.sh腳本過(guò)程中,因?yàn)樾枰?jīng)常使用“sudo”命令去安裝軟件包和寫配置文件,所以可能會(huì)提示輸入當(dāng)前用戶的密碼;因?yàn)樾枰渲靡恍?shù)據(jù)庫(kù)、OpenStack的認(rèn)證,所以可能會(huì)有一些數(shù)據(jù)庫(kù)用戶名、密碼的確認(rèn)需要與用戶進(jìn)行交互。在執(zhí)行DevStack的stack.sh之前,用戶也可以填寫本地自己配置的文件名為localrc的配置文件,示例如下:
DATABASE_PASSWORD=123456 #請(qǐng)根據(jù)需要修改此配置文件
RABBIT_PASSWORD=123456
SERVICE_TOKEN=123456
SERVICE_PASSWORD=123456
ADMIN_PASSWORD=admin
HOST_IP=192.168.111.111
如果準(zhǔn)備了這樣的本地配置文件,那么在運(yùn)行stack.sh腳本時(shí)就會(huì)減少這些密碼和認(rèn)證信息的確認(rèn)過(guò)程。關(guān)于Hypervisor的配置,在DevStack源代碼庫(kù)的默認(rèn)配置文件stackrc中有如下的兩行配置:
VIRT_DRIVER=${VIRT_DRIVER:-libvirt}
LIBVIRT_TYPE=${LIBVIRT_TYPE:-kvm}
所以,DevStack安裝OpenStack時(shí),默認(rèn)是設(shè)置libvirt作為Hypervisor的驅(qū)動(dòng)的,使用QEMU/KVM作為Hypervisor,只有在不能成功加載“kvm”模塊時(shí)才會(huì)退回到使用QEMU純軟件模擬的虛擬化方式。在執(zhí)行完stack.sh腳本安裝好OpenStack之后,也可以查看“kvm”和“kvm_intel”(或“kvm_amd”)模塊是否成功加載,還可以查看/etc/nova/nova.conf文件中有如下兩項(xiàng):
libvirt_type=kvm
compute_driver=libvirt.LibvirtDriver
一般來(lái)說(shuō),正常執(zhí)行完DevStack中的stack.sh腳本后,OpenStack的各項(xiàng)服務(wù)(如計(jì)算、鏡像、控制面板、網(wǎng)絡(luò)等)都已經(jīng)正常打開(kāi)處于可用狀態(tài)。當(dāng)然,如果安裝過(guò)程中有一些錯(cuò)誤出現(xiàn),則可以根據(jù)其源代碼進(jìn)行相應(yīng)的修改來(lái)解決或繞過(guò)一些問(wèn)題。當(dāng)時(shí)需要管理這些OpenStack服務(wù)時(shí),或者運(yùn)行stack.sh前需要清理環(huán)境時(shí),可以執(zhí)行DevStack中的unstack.sh腳本來(lái)停止OpenStack相關(guān)的服務(wù)和清理一些中途安裝出錯(cuò)的環(huán)境。
當(dāng)然,DevStack這一套腳本一般用于部署的是OpenStack開(kāi)發(fā)環(huán)境,對(duì)于在實(shí)際生產(chǎn)環(huán)境中大規(guī)模部署OpenStack云計(jì)算基礎(chǔ)架構(gòu)來(lái)說(shuō),還并不夠完善。不過(guò),可以根據(jù)OpenStack官方的一些部署參考文檔(見(jiàn)本章末尾的“參考閱讀”)和實(shí)際的應(yīng)用場(chǎng)景,以DevStack為基礎(chǔ)來(lái)構(gòu)建一套個(gè)性化的OpenStack生產(chǎn)環(huán)境。