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