安裝指南:用Puppet安裝OpenStack Nova計算云
OpenStack從Rackpace Cloud和NASA的合作中出現(xiàn),它提供運行在標(biāo)準(zhǔn)化硬件上的云計算服務(wù)?,F(xiàn)在一個有超過60家公司的社團(tuán)正在研發(fā)它。OpenStack是Apache服務(wù)器許可并由許多更小的項目組成,包括Nova計算平臺以及一個大規(guī)??蓴U(kuò)展冗余存儲系統(tǒng)Swift。
使用OpenStack的一個方法是使用Puppet并安裝一個OpenStack Nova計算云,這就是我們將在這篇文章中講述的內(nèi)容。Nova計算組件大體上等效于Amazon EC2的功能。它允許你使用包括AMI鏡像在內(nèi)的鏡像文件來部署虛擬機以及管理這些已部署的實例。
首先,我們將要構(gòu)建一個Ubuntu 11.04主機(Ubuntu Natty的ISO文件)。***是選擇一個物理主機而不是一個虛擬機,這不僅是因為性能原因,還因為在一個虛擬化內(nèi)部進(jìn)行虛擬化會引起不可預(yù)知的結(jié)果。如果你想要運行許多不同的鏡像,那么你將需要大量硬盤空間,至少10到20G。
接下來,你需要在主機上安裝Puppet和Git:
$ sudo apt-get install ruby rubygems git $ sudo gem install puppet
Nova需要通過一個PPA或者稱為個人軟件包存檔來完成安裝,它是一個包含Nova計算組件當(dāng)前開發(fā)版本的軟件包儲存庫。這是必需的,因為Nova處在一個過度的研發(fā)狀態(tài),同時最近打包的發(fā)行版本還不存在。
$ sudo apt-get install -y python-software-properties $ sudo add-apt-repository ppa:nova-core/trunk
接著你需要更新APT儲存庫來獲得新的PPA的詳細(xì)信息:
$ sudo apt-get update
此時,使用Git從OpenStack處下載Puppet Lab OpenStack組件。
$ cd ~ && git clone –recurse git://github.com/puppetlabs/puppetlabs-openstack.git
把所下載的組件復(fù)制到Puppet組件路徑:
$ sudo cp -R ~/puppetlabs-openstack/modules/* /etc/puppet/
現(xiàn)在你擁有了在主機上安裝Nova所需的所有東西。想要進(jìn)行實際的安裝,你需要在主機上觸發(fā)運行一個本地的Puppet。
$ sudo puppet apply --verbose ~/puppetlabs-openstack/manifests/all.pp
這將會運行all.pp Puppet清單,它將會安裝并配置Nova的所有組件以及其支持包和必備條件。
一旦Puppet已運行完成(它可能會花一些時間,因為它必須下載許多程序包),然后你需要添加一些AMI格式的鏡像。
$ cd /tmp $ mkdir lucid_ami && cd lucid_ami $ wget -q -O - http://173.203.107.207/ubuntu-lucid.tar | tar xSv
這會下載并解壓一個包括我們可以用來創(chuàng)建實例的明晰示例Ubuntu鏡像在內(nèi)的壓縮文件。然后,你將把這些鏡像文件,包括一個內(nèi)存盤、一個內(nèi)核以及一個操作系統(tǒng)鏡像文件,添加到一個稱為Glance的服務(wù)中,這個服務(wù)是一個用于發(fā)現(xiàn)、記錄并檢索鏡像的OpenStack服務(wù)。
首先添加內(nèi)存盤和內(nèi)核。
$ glance add name=ramdisk disk_format=ari container_format=ari is_public=True < initrd.img-2.6.32-23-server $ glance add name=kernel disk_format=aki container_format=aki is_public=True < vmlinuz-2.6.32-23-server
然后你可以列出已經(jīng)被添加的鏡像:
$ glance index
發(fā)現(xiàn)2個公開的鏡像...
編號 | 名稱 | 磁盤格式 | 容器格式 | 大小 |
2 | kernel | aki | aki | 4099360 |
1 | ramdisk | ari | ari | 7988037 |
你應(yīng)該看到了你的內(nèi)存盤鏡像#1以及我們的內(nèi)核#2。然后你可以連同我們明晰的操作系統(tǒng)鏡像一起使用它們并也把它添加進(jìn)去:
$ glance add name=lucid_ami disk_format=ami container_format=ami is_public=True ramdisk_id=1 kernel_id=2 < ubuntu-lucid.img
然后再次列出鏡像文件,發(fā)現(xiàn)你現(xiàn)在擁有鏡像#3:一個你將其作為一個虛擬實例推出的明晰的Ubuntu AMI。
$ glance index
發(fā)現(xiàn)3個公開的鏡像文件...
編號 | 名稱 | 磁盤格式 | 容器格式 | 大小 |
3 | lucid_ami | ami | ami | 524288000 |
2 | kernel | aki | aki | 4099360 |
1 | ramdisk | ari | ari | 7988037 |
你也可以添加其它的多種格式的鏡像到Glance。
接下來,你需要通過運行一些Nova子命令來設(shè)置你到Nova的訪問權(quán)限和身份驗證,這會產(chǎn)生一個密鑰對,用來驗證我們的Nova實例(類似于使用Amazon AWS的密鑰對)。這些相同的命令還會創(chuàng)建一個Bash腳本,用來設(shè)置合適的環(huán)境變量來驗證Nova。
$ cd ~ $ sudo nova-manage project zipfile nova novaadmin
現(xiàn)在,你應(yīng)該擁有了一個包含密鑰對和Bash腳本在內(nèi)的被稱為nova.zip的壓縮文件,它需要解壓:
$ unzip nova.zip
運行Bash腳本來填充我們的身份認(rèn)證和環(huán)境變量。在你可以通過一個命令行會話與Nova進(jìn)行交互之前,你需要運行這個腳本,或者把它的運行作為登錄的一部分。
$ source novarc
***,添加你的密鑰對,調(diào)用配對的openstack:
$ euca-add-keypair openstack > ~/cert.pem
現(xiàn)在,你可以使用這個密鑰對來運行一個實例了。尋找一個鏡像來運行:
$ nova image-list +----+-----------+--------+ | 編號 | 名稱 | 狀態(tài) | +----+-----------+--------+ | 1 | ramdisk | ACTIVE | | 2 | kernel | ACTIVE | | 3 | lucid_ami | ACTIVE | +----+-----------+--------+
然后尋找這個鏡像的一個特色來運行。特色描述了你將要運行的這個鏡像的大小和類型。在Amazon AWS世界,這是一個小中、大實例間的不同之處。你將會發(fā)現(xiàn)該功能與Amazon EC2相似。
$ nova flavor-list +----+-----------+-----------+------+----------+-------+------------+----------+ | ID | Name | Memory_MB | Swap | Local_GB | VCPUs | RXTX_Quota | RXTX_Cap | +----+-----------+-----------+------+----------+-------+------------+----------+ | 1 | m1.tiny | 512 | | 0 | | | | | 2 | m1.small | 2048 | | 20 | | | | | 3 | m1.medium | 4096 | | 40 | | | | | 4 | m1.large | 8192 | | 80 | | | | | 5 | m1.xlarge | 16384 | | 160 | | | | +----+-----------+-----------+------+----------+-------+------------+----------+
在這個例子中,我們將選擇運行一個小特色的ami-00000003鏡像實例,就是你剛剛添加的明晰Ubuntu鏡像,并使用openstack密鑰對:
$ euca-run-instances ami-00000003 -k openstack -t m1.tiny
啟動和配置實例將會花費好幾分鐘的時間,同時你可以使用以下命令來跟蹤它的狀態(tài):
$ euca-describe-instances i-00000001 ami-00000003 11.0.0.2 11.0.0.2 building m1.tiny
這里你可以看到該實例已經(jīng)啟動并且已為其分配了一個IP地址:11.0.0.2。有了這個IP地址和你的密鑰對,你現(xiàn)在就可以通過SSH連接到這個新的實例。
$ ssh -i ~/cert.pem root@11.0.0.2
當(dāng)你登錄到這個新的實例以后,你就可以設(shè)置它,在它上面部署應(yīng)用程序以及使用它直到你不再需要它為止(你可以通過euca-terminate-instance命令來終止這個實例)。你也可以生成其它實例并使自己可以運行你自身的開源云。
OpenStack才剛剛起步,同時,包括身份驗證和數(shù)據(jù)庫服務(wù)等在內(nèi)的許多附加的項目也正在進(jìn)行中,而且現(xiàn)有的組件每天都在擴(kuò)展和更新。如果你想要更深層次的了解OpenStack,那么你可以參考一些文檔,或者看看郵件列表,在那里你可以得到幫助或者參與研發(fā)。
英文:How to install an OpenStack Nova compute cloud with Puppet
原文:http://www.searchsv.com.cn/showcontent_50554.htm
【編輯推薦】