OpenStack是由NASA和Rackspace合作研發的雲端運算軟體,以Apache許可證授權,是一個自由軟體和開放原始碼項目。它提供成套的工具,可以用來建置、管理雲端運算平台。它讓使用者佈署虛擬機(Virtual Machine)與網路架構來管理雲端環境去處理不同的需求。
在大三專題時,使用OpenStack來做為測試的環境,在下面介紹如何在Ubuntu 14.04 Server上安裝和使用OpenStack
- 安裝OpenStack
第一件事情當然就是要先安裝OpenStack在實體機上了
我們為求方便,使用DevStack來安裝OpenStack,DevStack是一個擁有眾多指令的腳本,將安裝OpenStack所需用到的指令包在裡面,以下為安裝的步驟
- 安裝Ubuntu 14.04 Server
- 創建一個非root或admin的帳戶,並賦予之可以使用sudo的權力
- 安裝git套件後,執行
git clone https://git.openstack.org/openstack-dev/devstack
- clone下來後會新增一個資料夾
devstack
,進入該資料夾後新增文字檔local.conf
,根據自己本身的要求來設定
我們的設定檔←按右鍵選取另存新檔,下載下來後將附檔名改為.docx
- 執行資料夾內的stack.sh,利用DevStack來安裝OpenStack
接著過一段時間,若設定都沒有問題的話應該會順利地跑完,在最後可以看到host的IP和使用者帳戶、密碼
- 使用OpenStack創建虛擬機
- 創建子網路
- 創建instance
在Dashboard主畫面的左側,專案→網路→網路
,點選新增網路,做好相關的設定後即可完成創建。
為了讓該子網路可以得到public的浮動IP,所以需要一個Router連接public與子網路,可在專案→網路→路由器
,新增路由器,並在專案→網路→網路拓樸
中設定該路由器要連結的網路(將滑鼠移動到路由器圖示上方,點選新增網路介面卡)
至Dashboard中專案→運算→存取權
以及安全性→密鑰封
,創建一個keypair,作為OpenStack未來連結到該虛擬機後,用以認證身分的憑據,可以下載到電腦中。之後在Dashboard的雲實例頁面中,點選右上角的「發動雲實例」,即可開始建立instance
- 控制建立好的Instance
- 使用Dashboard將instance與浮動IP連結
- 取得密鑰封
- 使用密鑰封進行遠端連線認證
- 在instance建立新帳戶
- 透過noVNC開啟instance
使用SSH連線
到Dashboard中專案→運算→存取權以及安全性→安全性群組→default→管理規則
,新增規則SSH以及自訂的ICMP(空格都打-1)
將建立instance過程中得到的keypair.pem用word打開,複製裡面的內容後,在Server上創建相同的檔案,並提高該檔案權限
Ex.chmod 0600 KEYPAIR_NAME.pem
使用一般的ssh指令配合前一步驟中所得到的keypair.pem,即可透過ssh遠端連線創建好的instance
Ex.ssh –i keypair.pem ACCOUNT@INSTANCE_FLOATING_IP
使用noVNC
建立好instance後,先ssh連線至該instance,新增帳戶或直接修改原有帳戶的密碼,用於novnc登入(因為使用novnc無法使用keypair.pem)
在實體機的terminal輸入:
novnc get-vnc-console INSTANCE_NAME novnc
可以得到一個網址,將該網址貼到瀏覽器上就可透過noVNC連結到instance;或者也可以在Dashboard中的專案→運算→雲實例
,點選instance名稱→主控台
,可直接打開noVNC console
- 讓instance連上外網,以便使用apt-get指令
- 修改/etc/sysctl.conf
- 修改local.conf
在/etc/sysctl.conf裡面把net.ipv4.ip_forward=1
取消註解,再加上 net.ipv4.conf.p1p1.proxy_arp=1
這行。儲存後在terminal輸入:
sudo iptables -t nat -A POSTROUTING -o p1p1 -j MASQUERADE
(重開機後需要再打一次上面這行,p1p1為實體機網路介面卡的名稱,須要視個人實體機的網路介面卡名稱做修改)
※Notice:如果原local.conf裡面已有本步驟相關設定,則本步驟可忽略。
在local.conf裡面新增:
FIXED_NETWORK_SIZE=256
(根據自己實體網卡而有所不同)
FLAT_INTERFACE=p1p1
完成後重新安裝devstack。
對「[工具使用]安裝與使用OpenStack」的想法