devstack 是一个用来快速部署 OpenStack 的脚本。
使用非常简单,执行 ./stack.sh 即可,但是在安装过程中遇到一些问题会中断,通过不断修正尝试,事后在这里记录一下,希望能帮到看到这篇文章的童鞋。
部署环境:
- VMware 12
- Distributor ID: Ubuntu
Description: Ubuntu 16.04.3 LTS
Release: 16.04
Codename: xenial - 建议虚拟机设置内存 8G 以上(我开始设置 4G 安装,成功后查看内存只剩下100M)
准备
看自己网络情况,可以先设置一下 pip、apt-get 国内的源。
首先 clone 项目到本地
cd /
git clone https://github.com/openstack-dev/devstack.git
执行脚本创建 stack 用户
/devstack/tools/create-stack-user.sh
修改 devstack 目录权限,让 stack 用户可以运行
chown -R stack:stack /devstack
chown -R stack:stack /opt/stack
#有可能会出现无权限访问该目录
chown -R stack:stack /opt/stack/.cache
切换到 stack 用户
sudo su stack
创建 local.conf
vim /devstack/local.conf
参考内容:
[[local|localrc]]
ADMIN_PASSWORD=password
DATABASE_PASSWORD=password
RABBIT_PASSWORD=password
SERVICE_PASSWORD=password
# 默认是 https://git.openstack.org,如果不能正常访问替换成 Github
GIT_BASE=https://www.github.com
# 一定要设置这个。安装前依赖检查,默认是发现版本不一致的库直接中断脚本。
PIP_UPGRADE=True
执行安装脚本
/devstack/stack.sh
处理中断问题
脚本执行中途如果有异常导致中断,通常是 pip 依赖或者 git clone 莫名卡住。
pip 依赖的异常通过设置PIP_UPGRADE=True后我没有在遇到过,这里要说一下 git clone 卡住,原因未知,也可能是我网络不稳定。我的处理方式如下:
中断脚本,Ctrl + C 无法中断就另开一个中断查找进程杀掉
ps -ef | grep stack
手动执行 git clone 到指定目录 /opt/stack/ 下。(我猜测,安装前提前 clone 好应该也可以)
提醒一下,如果 local.conf 中没有明确指明,至少会安装以下几个服务的:
https://github.com/openstack/nova.git
https://github.com/openstack/keystone.git
https://github.com/openstack/swift.git
https://github.com/openstack/neutron.git
https://github.com/openstack/glance.git
https://github.com/openstack/cinder.git
https://github.com/openstack/horizon.git
https://github.com/openstack/tempest.git
https://github.com/kanaka/noVNC.git --branch stable/v0.6
处理完问题后,重新执行 stack.sh 前应该需要执行一下 unstack.sh 脚本。(我没有试过不执行 unstack.sh 会怎样)
/devstack/unstack.sh
(如果你想回退所有操作重新安装,执行 clean.sh ,然后按最后的提示可能还需要删除一些目录文件)
总之如果一切顺利,最后,你将看到下图,说明安装完成。