O017、部署DevStack
本节按照以下步骤部署 DevStack 实验环境,包括控制节点和计算节点。详细的部署和配置可以查看老师的视频
一、创建虚拟机
按照物理资源需求创建 devstack-controller 和 devstack-compute 虚拟机
我的实验环境:
devstack-controller 8C / 16G / 160G / NIC 3
devstack-compute 8C / 16G / 160G / NIC 3
二、安装操作系统
安装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 源-阿里云
三、下载代码
下载 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
四、配置 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
五、开始部署
先在 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
六、验证 OpenStack
访问 http://10.12.31.241 ( DevStack-Controller 的 IP ) admin / admin
查看 管理员- 系统 - 系统信息 中各项内容的状态
七、启动OpenStack
如果重启了系统,OpenStack 不会自动启动,需要重新运行 stack.sh 命令。
重跑 stack.sh 的结果是重新初始化,之前的配置不会保留。所有如果节点都是虚拟机,建议不要重启,直接休眠,下次就不用重新初始化了。
运行成功后OpenStack 的每个服务都在一个screen 中以进程的方式运行。使用screnn的几个好处:
1、可以方便的在不同服务之间切换和查看日志。因为OpenStack的服务很多,每个服务都有自己的日志文件。查找日志试衣间非常麻烦的事情,screen可以帮我们提高效率。
2、当我们修改了某个服务的配置文件需要重启服务时,只需在该服务的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
八、删除自动创建的网络
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]