我是從2016年8月22日開始接觸openstack概念,開始尋找部署openstack的工具,到現在剛好過去了2個月。其間,我用到了Mirantis 公司的fuel,初步研究了正式版的openstack,然而最多的經歷還是花在了devstack上。
我個人的理解,devstack是一款使用screen 模式運行openstack各個基本模塊的自動化安裝部署工具軟件。它可以把openstack集成安裝在一台機器或者虛擬機上,在安裝前使用一個local.conf配置文件,在安裝中運行一個全自動化的高級腳本,在安裝后可以使用其進行openstack調試和小型試驗。
那這篇博客也按照安裝前,安裝時和安裝后來說吧。
1. 安裝前:
我測試了ubuntu 14.04 LTS和16.04 LTS,兩個版本都可以成功安裝devstack,我是在裸機上試驗。安裝前首先需要git下來devstack的各種文件,參考 http://devstack.org. git到官網文件夾后,需要創建並配置一個叫local.conf的文件,在這個文件中,我測試過的就是指定 Host IP, 指定使用哪種網絡,指定floating ip范圍等等。下面貼上經測試可用的配置例子:
+++++++++++++++++++++++
[[local|localrc]]
DATABASE_PASSWORD=pass
ADMIN_PASSWORD=pass
SERVICE_PASSWORD=pass
SERVICE_TOKEN=pass
RABBIT_PASSWORD=pass
HOST_IP=134.124.108.112
SERVICE_HOST=134.124.108.112
MYSQL_HOST=134.124.108.112
RABBIT_HOST=134.124.108.112
GLANCE_HOSTPORT=134.124.108.112:9292
disable_service n-net
ENABLED_SERVICES+=,q-svc,q-dhcp,q-meta,q-agt,q-13
## Neutron options
Q_USE_SECGROUP=True
FLOATING_RANGE="134.124.108.0/24"
FIXED_RANGE="10.0.0.0/24"
Q_FLOATING_ALLOCATION_POOL=start=134.124.108.120,end=134.124.108.130
PUBLIC_NETWORK_GATEWAY="134.124.108.1"
PUBLIC_INTERFACE=eno1
Q_USE_PROVIDERNET_FOR_PUBLIC=True
OVS_PHYSICAL_BRIDGE=br-ex
PUBLIC_BRIDGE=br-ex
OVS_BRIDGE_MAPPINGS=public:br-ex
++++++++++++++++++++++++++
(說明:hostIP就是安裝devstack電腦的IP地址;floatingIP是跟主機同一網段的ip地址,目的是為了外網電腦可以與openstack內網VMs通信;fixedRange 是openstack內網的ip地址;publicBridge是電腦與外網通信的網卡,由於devstack會自動把網卡配置成橋接模式,所以此處使用此網卡)
2. 安裝中:
配置好后,運行stack.sh,開始自動安裝過程。值得一提的是,這個安裝過程可能會出現各種意想不到的bug,導致中途停止,即使你完成了百分之90,也會前功盡棄,而且有時原因不得而知。舉個例子,同樣的配置,同樣的電腦,可能今天和明天運行同樣的命令,會失敗和成功。所以,推薦多嘗試安裝。每次嘗試安裝前要運行unstack.sh和重啟電腦。遇到實在無法成功,就重新裝一遍操作系統。
3.安裝后:
安裝成功后,根據提示可以用瀏覽器打開openstack的UI操作界面,可以在UI上完成各種控制和功能,運行虛擬機等等。
需要注意的是,正確的安裝應該電腦的網卡和新生成的br-ex網卡具有相同的IP地址。我在安裝的時候曾經出現電腦的物理網卡在安裝后ip地址沒有,只有br-ex有ip,這種情況的后果就是在安裝后的某個較短時間內,電腦與外網會斷掉,從而導致電腦上不了網,更別提openstack里的VMs。 分析我的失敗原因,可能是因為我的主機ip是134.124.108.255,雖然所處網絡的掩碼是255.255.254.0,所以這是一個可用的ip而不是一個廣播ip,但是devstack安裝程序可能不這么認為,導致了配置的失敗。所以正常的ip應該沒問題。
如果生成的網絡配置沒有問題的話,我們就可以接下來控制openstack,可以用UI也可以用CLI(http://docs.openstack.org/cli-reference/common/cli-overview.html)。創建VM后,賦予floating ip后,理論上來說就應該是實現VM與外網電腦的相互通信。
注意:安裝后的電腦不能重啟,否則會丟失網絡橋接的那些配置,導致網絡出問題,無法連接外網。我將其歸結為devstack的缺陷。
總結:總覺得可能要開始部署真正的openstack,用上三四台機器。這一天總要到來,加油