利用 DevStack 來部署測試 OVN (Open Virtual Network)

轉載請註明出處: http://kyang.cc/


1. 虛擬機環境搭建

目前我都是基於虛擬機來部署測試 Openstack,所以大家先去下載個 vmware workstation pro 12 以及 ubuntu server 鏡像。

然後利用 vmware 新建一個 ubuntu server 的虛擬機實例,有一點要注意的是,我們需要給虛擬機分配兩張網卡。一張顯卡使用 NAT 模式,另一張使用 Host-only 模式。爲什麼需要新建兩張顯卡呢?我先給上面兩張網卡命個名, NAT 模式的網卡叫 ens33,Host-only 模式的網卡叫 ens34。使用 DevStack 部署 Openstack 的時候,需要單獨佔用 ens33 這張網卡,並且部署過程中,系統有段時間無法通過 ens33 和外部通訊(也就是斷網了)。但是我一般習慣在 Host 上通過 SSH 連接到虛擬機,由於 ens33 會存在掉線的情況,因此我需要一張額外的網卡保證 HOST 和 虛擬機 的網絡連接保持通暢,這就是 ens34 網卡的由來。其實如果你放棄使用 SSH 的方式登陸虛擬機進行 Openstack 部署的話,你確實就只需要 ens33 一張網卡就好。

2. DevStack 源碼下載

以下所有命令,都是在虛擬機實例上運行的。

首先去 github 上,下載一份 DevStack 源碼,就放在 /home/ 目錄下吧:

root # git clone https://github.com/openstack-dev/devstack /home/devstack

然後,使用 DevStack 提供的腳本,新建一個 stack 的系統用戶

root # /home/devstack/tools/create-stack-user.sh

爲什麼要新建一個 stack 用戶呢?因此用腳本新建的 stack 用戶,是沒有用戶密碼的。後續 DevStack 在部署 Openstack 會多次調用 sudo 命令,這個時候就不需要我們額外輸入密碼(實際上也不可能,鬼知道腳本什麼時候要輸入密碼)。

設置 DevStack 源碼的文件權限,保證 stack 用戶能正常訪問:

root # chown -R stack:stack /home/devstack/

3. DevStack 配置

DevStack 在部署 Openstack 的時候,回去解析 local.conf 這個配置文件。我們可以通過這個文件來決定,待會需要安裝哪些組件(keystone, neutron, nova…),以及 Openstack 的基本網絡拓撲。官網的 DevStack Doc 已經對 local.conf 進行了全面的解析,從文章中可以知道,其實 Openstack 就 Neutron 網絡組件配置非常複雜(不復雜應該就不能適用靈活多變的網絡拓撲吧!)。

本文就不去解析 local.conf 的配置,Networking-OVN 插件已經提供了一個 local.conf.sample,我們直接拿來用就好!

只不過由於我們受到 “GreatFirewall” 無微不至的保護,導致我們無法穩定的訪問相關網絡資源,因此我們需要稍改一些配置。首先 local.conf 中,需要重新定向 openstack 的源碼地址,將其指向到 github 上去。新添加的內容如下:

GIT_BASE=http://github.com
NOVNC_REPO=http://github.com/kanaka/noVNC.git
SPICE_REPO=https://github.com/SPICE/spice-html5.git

其次 openstack 是基於 python 寫的,因此部署過程中,頻繁的需要用 pypi 來安裝相關包。由於國內訪問 python.org 是很不穩定的,因此我們最好是去使用豆瓣的 pypi 源,改動如下:

stack $ mkdir ~/.pip
stack $ cat > ~/.pip/pip.conf << EOF
[global]
trusted-host=mirrors.aliyun.com
index-url=http://mirrors.aliyun.com/pypi/simple/
EOF

最後 DevStack 在部署的過程中,需要去下載很多文件到 /home/devstack/files 目錄下。其中有兩個文件,下載的時候經常容易失敗。一個是 get-pip.py 這個文件,另一個是 cirros-0.3.4-x86_64-disk.img 這個文件。因此我們直接手動下載好,放到對應目錄就好:

stack $ cd /home/devstack/files/
stack $ wget https://bootstrap.pypa.io/get-pip.py
stack $ wget http://images.trystack.cn/cirros/cirros-0.3.4-x86_64-disk.img

4. 部署 Openstack

到這裏了,就只需要直接運行 DevStack 的 stack.sh 腳本就好了,萬幸的話,你會直接成功,看到如下信息:

stack $ cd /home/devstack/
stack $ ./stack.sh
......

要是不幸的話,就只能自己多看 log,多查查了。只不過問題多半是 python 包安裝超時,或者組件源碼下載超時。手動把對應包安裝下,然後重複運行 ./stack.sh 就好了。

2

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章