一直以來,對於openstack 的初學者來講,安裝往往是入門的頭大難題。在E版本之前,要搭建一個基本能用的openstack 環境那是相當麻煩,自己要裝機,自己搞源,自己照着文檔敲命令,又沒有靠譜的文檔,官方給出的文檔依舊有好多坑,還有語言問題往往用上好幾天時間都裝不起來,慢慢地就喪失了學習openstack 的信心!
不過后來情況有了很大改觀,從E版本開始,以后安裝過程簡化許多,文檔質量提高不少。盡管如此對於初學者還講還是比較復雜,其實很多時候,很多人只是想體會一下openstack,完全不關注安裝這門子事情。還好openstack社區足夠活躍,很快就有公司做出了比較友好的安裝工具,比如今天要向大家介紹的Fuel這個工具,其實這里還可以叫她mirantis openstack,由Mirantis 公司開發。
關於 Mirantis
Mirantis,一家很牛逼的openstack服務集成商,他是社區貢獻排名前5名中唯一一個靠軟件和服務吃飯的公司(其他分別是Red Hat, HP, IBM, Rackspace)。相對於其他幾個社區發行版,Fuel的版本節奏很快,平均每兩個月就能提供一個相對穩定的社區版。
Fuel 是什么?
Fuel 是一個為openstack 端到端”一鍵部署“設計的工具,其功能含蓋自動的PXE方式的操作系統安裝,DHCP服務,Orchestration服務 和puppet 配置管理相關服務等,此外還有openstack 關鍵業務健康檢查和log 實時查看等非常好用的服務。
Fuel 3.2基於Grizzly版本,而最新將發布的4.0版本是基於Havana版本的技術預覽版,不可用作生產環境使用,同時,4.0版本仍然不包含Heat和Ceilometer組件。
Fuel 的優勢
總結一下,Fuel 有以下幾個優點:
- 節點的自動發現和預校驗
- 配置簡單、快速
- 支持多種操作系統和發行版,支持HA部署 × 對外提供API對環境進行管理和配置,例如動態添加計算/存儲節點 × 自帶健康檢查工具 × 支持Neutron,例如GRE和namespace都做進來了,子網能配置具體使用哪個物理網卡等
Fuel 的架構是怎樣的呢?
Fuel 主節點:用於提供PXE方式操作系統安裝服務由開源軟件Cobbler 提供,另外由Mcollective和puppet 分別提供orchestration服務和配置管理服務。Fuel iso 包發部的時候已經一同打包了Centos6.4 和ubuntu 12.04 安裝包,如果需要使用紅帽子企業版RHEL6.4 需要自己手動上傳。
目前可以支持openstack SA 或者HA 的安裝。現在我們已經對Fuel 有了大致了解,現在來看看用她來安裝openstack有多么的方便!
Fuel openstack 安裝
首先要說明的是Fuel 針對目標就是生產環境openstack部署,這里為了講解安裝過程就在虛擬機上演示說明。我的環境是HP筆記本Folio 9470 ,其實是辦公用的普通筆記本,讀者可以根據實際機器情況自行修改虛擬機配置,我給出了我的配置僅供參考。
安裝說明
硬件要求
- 啟用虛擬化技術支持:開啟BIOS設置里的虛擬化技術支持相關選項,這個會很大程度上影響你的虛擬機性能。
- 最低硬件配置:cpu:雙核2.6GHZ+;內存:4g+;磁盤:80G+
- 虛擬化工具:Oracle Virtualbox 4.2.18
安裝包准備
- 下載virtualbox 包 https://www.virtualbox.org/wiki/Downloads/
- 下載fuel ios包,先要注冊一個mirantis 用戶賬戶,目前最新版本是3.2.1 這個版本, MirantisOpenStack-3.2.1.iso (1.8G)http://www.openstack.cn/p383.html
安裝步驟
- 虛擬環境設置
- 安裝Fuel 主節點
- 部署openstack節點
- 部署結果檢查
- 虛擬環境設置
網絡拓撲
首先在virtualbox 里面自定義如下3個網絡:
›Net1:
–Network name: VirtualBox host-only Ethernet Adapter#2
–Purpose: Fuel administrator network
–IP block: 10.20.0.0/24
–Linux device: eth0
›Net2:
–Network name: VirtualBox host-only Ethernet Adapter#3
–Purpose: public/ floating network
–IP block: 172.16.0.0/24
–Linux device: eth1
›Net3
–Network name: VirtualBox host-only Ethernet Adapter#4
–Purpose: Storage/ management/ internal network
–IP block: 192.168.4.0/24
–Linux device: eth2
虛擬機創建
›VM1
–Name: Fuel_3.2.1
–vCPU:1
–Memory :1G
–Disk:30G
–Networks: net1
›VM2
–Name : Fuel_3.2.1_controller
–vCPU:1
–Memory :1G
–Disk:30G
–Network:net1,net2,net3
›VM3
–Name: Fuel_3.2.1_compute1
–vCPU:2
–Memory :2G
–Disk:30G
–Networks:net1,net2,net3
網絡拓撲
創建網絡Net1,注意不要啟用dhcp,這個會干擾fuel 自己的dhcp服務。
創建網絡net2
創建網絡net3
安裝fuel 主節點
創建fuel 主節點虛擬機,虛擬機名字為“fuel_3.2.1“。注意網卡選用net1,也就是virtualbox 的”VirtualBox host-only Ethernet Adapter#2“ 網絡。
設置完成后啟動虛擬機,顯示boot menu時候,如果需要修改ip地址可以自行修改,默認是不需要修改。
開始安裝操作系統
出現該畫面時按任意鍵進入修改fuel 主節點相關配置,可以不修改使用默認值,幾秒后進行軟件包安裝。
puppet 安裝fuel 相關軟件,比如Cobbler 等。
fuel 主節點安裝完成。
看fuel 安裝是否完成,就登錄http://10.20.0.2:8000/ 顯示如下頁面。
可能的問題
- 如果web 頁面不能正常訪問,可能是你本機的防火牆把本地的網絡拒掉,請先禁用防火牆再試。
- 如果使用了瀏覽器http代理,請關閉代理直接訪問。
接下來就開始安裝openstack 環境了。
安裝openstack 環境
首先在Fuel web 上創建一個openstack 環境,名字為”demo“,這個環境是可以創多個的,可見fuel可以同時管理多個openstack 環境。這里選擇的os 有三種,這里默認選擇centos,當然你也可以選擇ubuntu 和rhle ,不過rhle 需要手動上傳鏡像或者提供紅帽子官網用戶名和密碼,fuel 為你自動下載,不過時間比較長,不推薦。
這里選擇部署openstack 多節點非HA模式。
由於我們是在虛擬機中再跑虛擬機,這里選擇hypervisor類型為”qemu“。
這里選擇openstack 的網絡部署模式,我們選最簡單的方式也是目前最成熟的方式nova-network實現。
最后一路使用default 配置,不做更改完成環境創建。
創建openstack節點虛擬機VM2和VM3,分別命名為fuel_3.2.1_controller和fuel_3.2.1_compute1,注意計算節點多分配寫cpu core ,至少2個,內存2G,當然如果機器配置不夠也可以1個core 1G內存,至少后邊創建openstack的instance比較慢。
設置系統由network啟動
配置網卡1,接入net1,注意一定要選擇 網卡類型為:Pcnet-PCI II,並且開啟混雜模式:Allow All.node_vms_set_promiscuous.jpg
配置網卡2,接入net2.
配置網卡3,接入net3
讓后分別啟動VM2和VM3
畫面出現bootstrap login 后,在fuel web 頁面才可以看到節點被fuel發現。
回到fuel web 可以看到兩個節點被發現
接下來開始針對這兩個被發現的節點VM2,VM3配置openstack環境了。
首先需要配置VM2和VM3在openstack 中的角色。點擊”add nodes“ 添加VM2作為openstack 的控制節點。
在點擊”add nodes“ 添加VM3作為openstack 的計算節點。
修改兩個節點的物理網卡和openstack 邏輯網絡的映射關系,這里只需要拖拽就搞定。admin 網絡已經設置到eth0不能再作修改10.20.0.0/24,public和 instance floating 網絡共用eth1 且共用同一個地址塊172.16.0.0/24,而private ,management 和storage 共用eth2 但是網絡ip不同,需要通過vlan tag 方式實現二層網絡隔離。
修改兩個節點磁盤的分區情況,這里使用默認值,注意storage 分區不能小於10g,否則不能通過驗證。
再來配置openstack 最復雜的一塊網絡,其實按照我給的網絡拓撲使用默認值就可以安裝啦,是不是很方便?不過還是要啰嗦一下:
public IP用於物理機器和外界通信,floating IP 用於動態分配給openstack instance 實現和外界通信。注意這里地址塊不能重疊。 由於private,management和storage共用同一網卡且IP塊不同,要實現二層隔離就需要打上vlan的tag,如果是接在真實的交換機,必須啟用trunk 模式。 一旦網絡配置完畢並安裝完成,這個地址是永久不能改變的,所以生產環境下一定要先規划好在部署。 配置完成后點擊 ”networking verification“ 按鈕,檢查網絡設置是否正確。
驗證通過后保持設置,開始部署節點。
此時可以發現兩個VM開始自動重啟開始安裝OS。
這里比較古怪,安裝進度到33%時需要等很久才能往下走。這個時候兩個節點的OS都已經安裝完成。
有什么辦法能看到安裝的log呢?當然有,這時候可以去log 標簽視圖查看安裝log,選取”other server“,在選對應節點的puppet log 看log 跳動。
最后,一切順利的話,大概20 幾分鍾安裝就會完成了,不過具體時間取決於機器性能,這時候點擊http://172.16.0.2 或者 http://10.20.0.4 都可以訪問openstack 的dashboard .區別在於172.16.0.2 所謂的公網ip 地址,這個登后dashboard 可以直接使用vnc 訪問instance,而10.20.0.4不能。
點擊鏈接進入openstack登錄頁面,輸入admin/admin
至此,openstack的環境部署完成,這里部署了一個計算節點,一個控制節點。沒有部署cinder ,沒有部署多計算節點。如果需要部署,請重復上述步驟即可。
最后,就是驗證一下openstack環境是否正確部署。其實fuel 有個非常好的而一個功能,可以快速檢測openstack 環境”健康“情況。進入healthcheck 標簽,可以一鍵安全檢測,注意不會全部都通過,應為cinder 沒有安裝,所以create volume 相關的服務會失敗。
最后我們還是創個instance 來驗證吧?
安裝openstack環境驗證
先登錄后進入openstack主管理界面,創建一個instance,進入project view – > 打開instances tab -> 點擊右上方luanch 按鈕。instance 名字為test0
instance 創建成功后,同時點擊相應instance test0右邊的”more“ 按鈕,選擇”allocation floating ip“,為其分配一個floating ip 地址。
直接在web 頁面訪問instance: 點擊 右端 ”more“ -> “console” 按鈕進入該頁面,這是是用web socket 技術實現的VNC 客戶端,用它可以做一些簡單instance 管理,不足是不能粘貼拷貝比較麻煩。
最后在筆記本上打開一個”cmd“ 終端看一下floating ip 是否通暢。
至此fuel web openstack 安裝介紹結束,如果要安裝更多節點請重復上面操作即可。
其他工具
當然,openstack安裝工具不只是有fuel ,還有紅帽子的packstack 也是不錯的,並且支持最新版本的openstack 安裝。這里有篇文章對二者做了比較全面的介紹 http://www.openstack.cn/p383.html。
參考文檔
http://openstack-huawei.github.io/mirantis-openstack/
http://software.mirantis.com/quick-start/
http://www.openstack.cn/p383.html
轉自http://yongluo2013.github.io/quick-setup-openstack-with-fuel-in-30-minutes/