本节按照如下步骤部署 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]