1. 程式人生 > >每天5分鐘玩轉 OpenStack(17)

每天5分鐘玩轉 OpenStack(17)

本節按照以下步驟部署 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 分支

配置 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=default

LOG_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_HOST

CEILOMETER_BACKEND=mongodb
DATABASE_TYPE=mysql

ENABLED_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_LISTEN

LOG_COLOR=False
LOGDIR=$DEST/logs
SCREEN_LOGDIR=$LOGDIR/screen

另外,為了加快安裝速度,還可以加上下面的配置使用國內的 devstack 映象站點

開始部署

分別在 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 有幾個好處:

  1. 可以方便的在不同服務之間切換和檢視日誌。
    因為OpenStack的服務很多,每個服務都有自己的日誌檔案。
    查詢日誌是一件非常麻煩的事情,screen可以幫我們提高效率。

  2. 當我們修改了某個服務的配置檔案需要重啟服務時,只需在該服務的 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 環境。
後面會在這個環境中實踐各個模組。