本節按照以下步驟部署 DevStack 實驗環境,包括控制節點和計算節點
創建虛擬機
按照物理資源需求創建 devstack-controller 和 devstak-compute 虛擬機
安裝操作系統
安裝 Ubuntu 14.04,並配置 eth0 的 IP devstack-controller 192.168.104.10 devstak-compute 192.168.104.11
下載代碼
下載 devstack 代碼,並切換到 stable/liberty 分支
apt-get install git -y
git clone https://git.openstack.org/openstack-dev/devstack -b stable/liberty
配置 stack 用戶
創建 stack 用戶
devstack/tools/create-stack-user.sh
為方便起見,將devstack目錄放到/opt/stack下,並設置權限
mv devstack /opt/stack
chown -R stack:stack /opt/stack/devstack
切換到 stack 用戶
su – stack
cd devstack
編寫運行配置文件
在 /opt/stack/devstack 目錄下,創建 local.conf。
devstack-controller
[[local|localrc]]
MULTI_HOST=true
HOST_IP=192.168.104.10 # management & api network
LOGFILE=/opt/stack/logs/stack.sh.log# Credentials
ADMIN_PASSWORD=admin
MYSQL_PASSWORD=secret
RABBIT_PASSWORD=secret
SERVICE_PASSWORD=secret
SERVICE_TOKEN=abcdefghijklmnopqrstuvwxyz# enable neutron-ml2-vlan
disable_service n-net
enable_service q-svc,q-agt,q-dhcp,q-l3,q-meta,neutron,q-lbaas,q-fwaas,q-vpn
Q_AGENT=linuxbridge
ENABLE_TENANT_VLANS=True
TENANT_VLAN_RANGE=3001:4000
PHYSICAL_NETWORK=defaultLOG_COLOR=False
LOGDIR=$DEST/logs
SCREEN_LOGDIR=$LOGDIR/screen
devstack-compute
[[local|localrc]]
MULTI_HOST=true
HOST_IP=192.168.104.11 # management & api network# Credentials
ADMIN_PASSWORD=admin
MYSQL_PASSWORD=secret
RABBIT_PASSWORD=secret
SERVICE_PASSWORD=secret
SERVICE_TOKEN=abcdefghijklmnopqrstuvwxyz# Service information
SERVICE_HOST=192.168.104.10
MYSQL_HOST=$SERVICE_HOST
RABBIT_HOST=$SERVICE_HOST
GLANCE_HOSTPORT=$SERVICE_HOST:9292
Q_HOST=$SERVICE_HOST
KEYSTONE_AUTH_HOST=$SERVICE_HOST
KEYSTONE_SERVICE_HOST=$SERVICE_HOSTCEILOMETER_BACKEND=mongodb
DATABASE_TYPE=mysqlENABLED_SERVICES=n-cpu,q-agt,neutron
Q_AGENT=linuxbridge
ENABLE_TENANT_VLANS=True
TENANT_VLAN_RANGE=3001:4000
PHYSICAL_NETWORK=default# vnc config
NOVA_VNC_ENABLED=True
NOVNCPROXY_URL="http://$SERVICE_HOST:6080/vnc_auto.html"
VNCSERVER_LISTEN=$HOST_IP
VNCSERVER_PROXYCLIENT_ADDRESS=$VNCSERVER_LISTENLOG_COLOR=False
LOGDIR=$DEST/logs
SCREEN_LOGDIR=$LOGDIR/screen
另外,為了加快安裝速度,還可以加上下面的配置使用國內的 devstack 鏡像站點
# use TryStack git mirror
GIT_BASE=http://git.trystack.cn
NOVNC_REPO=http://git.trystack.cn/kanaka/noVNC.git
SPICE_REPO=http://git.trystack.cn/git/spice/spice-html5.git
開始部署
分別在 devstack-controller 和 devstak-compute 上執行命令
./stack.sh
會輸出各項操作的結果。 日志會寫到 stack.sh.log 文件。
整個過程需要連接Internet,網速慢可能會花較長時間,成功后最后會打印出相關信息。
devstack-controlle 上的輸出
devstack-compute 上的輸出
驗證 OpenStack
下面驗證 OpenStack 已經正常運行 瀏覽器訪問 http://192.168.104.10/(devstack-controller 的 IP) admin/admin 登錄
點擊 System->System Information,確保各個服務的狀態正常
這里 cinder-volume 的狀態是 “Down”,這是因為我們還沒有配置 cinder,后面會讓它 Up 起來。
啟動 OpenStack
如果重啟了系統,OpenStack 不會自動啟動,可以運行下面命令
cd devstack ./rejoin-stack.sh
運行成功后,OpenStack 的每個服務都在一個 screen 中以進程方式運行。 使用 screen 有幾個好處:
-
可以方便的在不同服務之間切換和查看日志。 因為OpenStack的服務很多,每個服務都有自己的日志文件。 查找日志是一件非常麻煩的事情,screen可以幫我們提高效率。
-
當我們修改了某個服務的配置文件需要重啟服務時,只需在該服務的 screen 窗口 Ctrl+C,然后在命令行中找到上一個命令(Up鍵)執行就行,這個命令就是啟動服務的命令。
下面是 screen 常用命令
在 screen 中執行
Ctrl+a+n 切換到下一個窗口
Ctrl+a+p 切換到前一個窗口(與 Ctrl+a+n 相對)
Ctrl+a+0..9 切換到窗口 0..9
Ctrl+a+d 暫時斷開(detach)當前 screen 會話,但不中斷 screen 窗口中程序的運行
在 shell 中執行
screen -ls 列出當前所有的 session
screen -r stack 回到 devstack 這個 session
刪除自動創建的網絡
Devstack 在部署時可能會創建幾個測試網絡,為了得到一個干凈的環境需將其刪除
刪除 Router Admin->System->Routers
刪除 Network Admin->System->Networks
至此,我們得到了一個干凈的 OpenStack 環境。 后面會在這個環境中實踐各個模塊。