2014年6月13日 星期五

在 ubuntu 安裝 All-In-One 開發版的 OpenStack

想要安裝 OpenStack 時,一般是可以直接看官方文件一步一步安裝
但因為中間設定很多又很繁雜,開發階段可以用 DevStack 來簡化安裝過程。
要使用 DevStack 來安裝,動作很簡單~
以 ubuntu 來說,只需要在一台剛裝好的 ubuntu 上安裝 git,然後用 git 的指令從 github 上把 DevStack 的安裝包下載下來
最後執行 DevStack 上的安裝指令 [1] 就可以一鍵安裝完成。

安裝 git
sudo apt-get install git

下載 DevStack
git clone https://github.com/openstack-dev/devstack.git
這段指令會自動在當前所在目錄下建一個 devstack 目錄,並把 DevStack 安裝包全部下載到該目錄內。
因此要執行這個指令時,記得先確定當前目錄是具有操作權限的。
此外這個指令有額外的參數可供使用,可以參考 [1] 的描述,在指令後面加上 stable/[release] 來指定想要下載的 release 版本
例如想要下載的是 IceHouse 版(這篇文章編寫時的最新版),指令可以調整成這樣:
git clone https://github.com/openstack-dev/devstack.git -b stable/icehouse devstack/

設定 DevStack
以現在來說,DevStack 的設定檔主要是 stackrc 和 local.conf 兩個檔案。
根據官方文件 [1-2] 的說明,預設 DevStack 會安裝的服務如下
Glance (API and Registry), Keystone, Nova (API, Certificate, Object Store, Compute, Network, Scheduler, VNC proxies, Certificate Authentication), Cinder (Scheduler, API, Volume), Horizon, MySQL, RabbitMQ, Tempest
也就是 Swift、Neutron 並不在預設安裝的範圍之內~。

如果想要調整安裝的東西,例如想要安裝 Swift 或者某些東西不想裝
可以透過在 DevStack 的目錄裡建立 local.conf 這個設定檔來要求 DevStack 安裝程序去依照需求做安裝。
註:依照官方的建議的話,DevStack 的安裝包建議放在使用者目錄(/home/使用者名稱)內
因此 local.conf 就建立在 /home/使用者名稱/local.conf 即可。

例如如果想要同時安裝 Swift 和 Neutron,可以在 local.conf 檔案中寫上以下的設定
[[local|localrc]]
# swift
enable_service s-proxy s-object s-container s-account

# Neutron
disable_service n-net
enable_service q-svc
enable_service q-agt
enable_service q-dhcp
enable_service q-l3
enable_service q-meta
enable_service q-metering

# Ceilometer
# Enable the ceilometer metering services
enable_service ceilometer-acompute ceilometer-acentral ceilometer-anotification ceilometer-collector

# Enable the ceilometer alarming services
enable_service ceilometer-alarm-evaluator ceilometer-alarm-notifier

# Enable the ceilometer api services
enable_service ceilometer-api
其中第一行 [[local|localrc]] 是官方文件中有提到要寫上的內容,有關設定的內容必須寫在 [[local|localrc]] 這個區塊之下。

另外關於 stackrc,這個檔案就是主要在執行更新的設定
在我們公司的網路環境中,預設採用的 git repository 無法連接,所以必須更換成 github 的 HTTPS 位址 [5]。
也就是要在 stackrc 檔案中找到這行
GIT_BASE=${GIT_BASE:-git://git.openstack.org}
並將它改成這樣
GIT_BASE=${GIT_BASE:-https://www.github.com}

安裝 DevStack
安裝DevStack 只需要執行 DevStack 安裝包內的 stack.sh 即可一鍵安裝完成。
如果再上面的 local.conf 設定檔中沒有沒有指定各種密碼(例如 MySQL 管理員的密碼、預設建立的 admin 和 demo 帳號的密碼等等)
在剛開始執行 stack.sh 時會詢問要設定什麼密碼,沒有輸入的話就會隨機產生
要注意的是,admin 和 demo 帳號的密碼如果用隨機產生的話,stack.sh 執行完以後會顯示產生的密碼(例如下面這樣)
不要裝完就開心地把螢幕訊息清掉了。
Horizon is now available at http://x.x.x.x/
Keystone is serving at http://x.x.x.x:5000/v2.0/
Examples on using novaclient command line is in exercise.sh
The default users are: admin and demo
The password: 9cdcdaba62a3b7c38ef8
This is your host ip: x.x.x.x

刪除 DevStack
DevStack 的安裝包當中,帶有方便使用者可以快速反安裝 DevStack 的 script,所以要反安裝其實也不太困難!
步驟只需要呼叫 unstack.sh 關閉 OpenStack 的服務,然後再呼叫 clean.sh 即可把 DevStack 安裝的大部分東西都移除掉。

不過要注意的是,如果要在刪除 DevStack 之後再重新安裝它,就會稍微麻煩一點~要盡可能清除上一次安裝的資料。
我自己的測試是會把 Apache2 完整移除掉
sudo apt-get purge apache2 apache2-utils
然後把 DevStack 安裝的資料夾 /opt/stack 也移除掉。
sudo rm -rf /opt/stack

參考資料:
1、DevStack
2、stackrc
3、OpenStack Configuration
4、devstack installation with swift enabled
5、Failure in IceHouse install

沒有留言: