本節按照如下步驟部署 DevStack 實驗環境,包括控制節點和計算節點。詳細的部署和配置能夠查看老師的視頻
1、建立虛擬機
按照物理資源需求建立 devstack-controller 和 devstack-compute 虛擬機
個人實驗環境:
devstack-controller 8C / 16G / 160G / NIC 3
devstack-compute 8C / 16G / 160G / NIC 3
2、安裝操做系統
安裝Ubuntu 16.04,並配置eth0 IP:
devstack-controller 10.12.31.241/22
devstack-compute 10.12.31.242/22
8C / 16G / 160G / NIC 3
eth0 管理
eth1 租戶網絡
eth2 外網
vhv.enable = "TRUE"
root user 123456
到辦公室路由
安裝 SSH、Virtual Machine Host
apt 源-阿里雲
pip 源-阿里雲
3、下載代碼
下載 DevStack 代碼,並切換到 stable/newton 分支
apt-get install git -y
git clone https://git.openstack.org/openstack-dev/devstack -b stable/ocata
trystack源
controller節點
root@DevStack-Controller:~/devstack# cat local.conf
[[local|localrc]]
MULTI_HOST=true
# management & api network
HOST_IP=10.12.31.241
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_AGENT=linuxbridge
ENABLE_TENANT_VLANS=True
TENANT_VLAN_RANGE=3001:4000
PHYSICAL_NETWORK=default
LOG_COLOR=True
LOGDIR=$DEST/logs
SCREEN_LOGDIR=$LOGDIR/screen
# 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
enable_service placement-api
enable_service placement-client
compute節點
root@DevStack-Compute:~/devstack# cat local.conf
[[local|localrc]]
MULTI_HOST=true
# management & api network
HOST_IP=10.12.31.242
# Credentials
ADMIN_PASSWORD=admin
MYSQL_PASSWORD=secret
RABBIT_PASSWORD=secret
SERVICE_PASSWORD=secret
SERVICE_TOKEN=abcdefghijklmnopqrstuvwxyz
# Service information
SERVICE_HOST=10.12.31.242
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
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=True
LOGDIR=$DEST/logs
SCREEN_LOGDIR=$LOGDIR/screen
# 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
enable_service placement-api
enable_service placement-client
4、配置 stack 用戶(本步操做兩個節點都要作,且操做方法同樣)
建立 stack 用戶
root@DevStack-Controller:~/devstack/tools# ./create-stack-user.sh
Creating a group called stack
Creating a user called stack
Giving stack user passwordless sudo privileges
爲 stack 用戶配置 pip 國內源
root@DevStack-Controller:~/devstack/tools# cp -a /root/.pip /opt/stack/
root@DevStack-Controller:~/devstack/tools# chown -R stack.stack /opt/stack/.pip/
root@DevStack-Controller:~/devstack/tools# ll /opt/stack/.pip/
total 12
drwxr-xr-x 2 stack stack 4096 May 21 21:28 ./
drwxr-xr-x 3 stack stack 4096 May 21 22:40 ../
-rw-r--r-- 1 stack stack 104 May 21 21:28 pip.conf
爲了方便起見,將devstack目錄放到 /opt/stack 下,也是就是stack用戶的家目錄,並設置權限
root@DevStack-Controller:~# mv devstack /opt/stack/
root@DevStack-Controller:~# chown -R stack:stack /opt/stack/devstack
5、開始部署
先在 devstack-controller 上執行
root@DevStack-Controller:~# su - stack
stack@DevStack-Controller:~$ ls
devstack
stack@DevStack-Controller:~$ cd devstack/
stack@DevStack-Controller:~/devstack$ ./stack.sh
而後在 devstack-compute 執行
root@DevStack-Compute:~# su - stack
stack@DevStack-Compute:~$ ls
devstack
stack@DevStack-Compute:~$ cd devstack/
stack@DevStack-Compute:~/devstack$ ./stack.sh
6、驗證 OpenStack
查看
管理員- 系統 - 系統信息 中各項內容的狀態
7、啓動OpenStack
若是重啓了系統,OpenStack 不會自動啓動,須要從新運行 stack.sh 命令。
重跑 stack.sh 的結果是從新初始化,以前的配置不會保留。全部若是節點都是虛擬機,建議不要重啓,直接休眠,下次就不用從新初始化了。
運行成功後OpenStack 的每一個服務都在一個screen 中以進程的方式運行。使用screnn的幾個好處:
一、能夠方便的在不一樣服務之間切換和查看日誌。由於OpenStack的服務不少,每一個服務都有本身的日誌文件。查找日誌試衣間很是麻煩的事情,screen能夠幫咱們提升效率。
二、當咱們修改了某個服務的配置文件須要重啓服務時,只需在該服務的screen窗口 Ctrl + C ,而後在命令行中找到上一個命令(Up鍵)執行就行,這個命令就是啓動服務的命令。
下面是screen經常使用命令:
Ctrl + a + n 切換到下一個窗口
Ctrl + a + p 切換到前一個窗口
Ctrl + a + 0-9 切換到第 0-9 的窗口
Ctrl + a + d 暫時斷開(detach)當前screen 會話,但不中斷screen窗口程序的運行
在shell 中執行screen命令
screen -ls 列出當前全部的 session
screen -r stack 回到 devstack 這個session
8、刪除自動建立的網絡
DevStack 在部署時可能會建立幾個測試網絡,爲了獲得一個乾淨的環境須要將其刪除。
轉到
管理員 - 系統 - 路由 刪除路由條目
轉到
管理員 - 系統 - 網絡 刪除網絡條目
我感受應該跟Pip版本無關,多是別的緣由。另外,建議用Ubuntu16.04 +
ocata版本,這個 成功率高。
Ocata版本,須要在local.conf中加入下面兩行:
enable_service placement-api 和
enable_service placement-client
下面的源若是能找到國內鏡像站點,會提速不少
Get:2 http://
ubuntu-cloud.archive.canonical.com/ubuntu xenial-updates/ocata/main amd64 qemu-system-arm amd64 1:2.8+dfsg-3ubuntu2.9~cloud5.1 [5159 kB]