有三種相當簡單的方法,可以讓你嘗試 OpenStack,其一是使用像 Rackspace 或 Cloudwatt 這類的商業公有雲,或是免費的 Trystack。不過如果你有興趣一探 OpenStack 的內部,了解如何加以管理,那麼你就得自己架設伺服器。DevStack 安裝程式是一支很棒的 shell 腳本,用來安裝 OpenStack 元件、LAMP 堆疊以及 CirrOS。CirrOS 是用以執行雲端 guests 的小型 Linux 散佈套件。
由於 OpenStack 需要一部專用系統,因此別把它安裝在你主要的電腦上。以下會用 Linux Mint 13 系統上安裝 Lubuntu 12.04 的 VirtualBox 虛擬機器為例。儘管真正的伺服器專家不會在伺服器上跑圖形化環境,不過為了測試方便,而且 Lubuntu 的輕量級特性還是值得一試。如果你選擇在虛擬機器內安裝 OpenStack,請至少給它 1.5GB 記憶體與 6GB 儲存空間。假如你有多核心系統,可以的話請空出一個以上的核心給 OpenStack,因為即使是測試安裝,它仍是吃 CPU 的龐然大物。
首先請建立安裝 DevStack 的用戶名稱 stack:
$ sudo useradd stack $ sudo passwd stack Enter new UNIX password: Retype new UNIX password:
並給予 stack 完整 sudo 權限:
$ sudo visudo stack ALL=(ALL:ALL) NOPASSWD: ALL
用 stack 登入後,安裝 git:
$ sudo apt-get install git -y
接著從 Github 抓下 OpenStack,請 cd 到 /var 然後執行 git:
$ git clone git://github.com/openstack-dev/devstack.git
這麼一來抓下來的程式會在 /var/devstack。cd 到 devstack,花幾分鐘看看各個腳本跟檔案。因為某些我不知道的原因,第一次執行時我碰上權限問題,因此我把 /var/devstack 跟 /opt/stack 的所有人設為 stack:
$ sudo chown -R stack:stack /opt/stack $ sudo chown -R stack:stack /var/devstack
我也把 /var/www 設給 www-data:www-data。Ubuntu 的預設值是 root,那不是好的做法。
最好能有日誌記錄,所有請建立 /var/stacklog,然後設給 stack。
有不少安裝前提需求,請建立/var/devstack/localrc. localrc,其中設定網路、密碼、日誌記錄等等。以下是最簡安裝的設定:
HOST_IP=10.0.1.15 FLAT_INTERFACE=eth0 FLOATING_RANGE=10.0.1.224/28 ADMIN_PASSWORD=supersecret MYSQL_PASSWORD=supersecret RABBIT_PASSWORD=supersecret SERVICE_PASSWORD=supersecret SERVICE_TOKEN=supersecret
OpenStack 會用到許多密碼,因為是測試,所以全用同一個密碼即可。HOST_IP 是你 OpenStack 伺服器的網路位址,不管是否在虛擬環境中,例如:
$ ifconfig eth0 Link encap:Ethernet HWaddr 90:ee:aa:a2:50:aa inet addr:10.0.1.15 Bcast:10.0.1.255 Mask:255.255.255.0
為你的 DevStack 伺服器建立靜態的 IP 位址,不然會很麻煩。網路在 OpenStack 中是個複雜議題,目前維持簡單即可。
FLAT_INTERFACE 是伺服器的 Ethernet 介面,如果你只有一個介面,可以不必設定。你可以把內部與公開介面分開,而 FLAT_INTERFACE 對應於內部介面。FLOATING_RANGE 是該網路上可用的所有 OpenStack 伺服器位址空間,且不能跟該伺服器 IP 位址重疊。
好了,設定完成後是時候結束安裝。到 /var/devstack 執行:$ ./stack.sh
安裝需要一點時間,你的螢幕會出現各種輸出訊息。請休息一下去做點別的事。完成時你會看到安裝成功的訊息。
現在在 OpenStack 伺服器上開啟瀏覽器,輸入螢幕顯示的位址,我的例子是 https://10.0.1.15。如果你看到登入頁面,恭喜你已經安裝成功,可以使用 Horizon 儀表板。請用 admin 帳號以及 localrc 中設定的密碼登入,你可以到處試試,看看各個頁面。
如果你把系統弄壞了,好心的 DevStack 團隊提供了一支重頭再來的腳本 clean.sh。該腳本會倒轉 stack.sh,回復到剛從 git 抓下檔案的狀態,因此在 clean.sh 結束後執行 stack.sh 以重新安裝你的系統。