翻阅了许多资料,其中以下文章对我帮助较大,但是遇到的问题自己慢慢摸出来的
Devstack 安装OpenStack Pike版本(单机环境) - 月缺一格 - 博客园
一、环境选择
ubuntu-16.04.7-server-amd64.iso
下载链接
Index of /ubuntu-cdimage/releases/16.04/release/
安装教程
https://jingyan.baidu.com/article/93f9803f5582a3e0e46f55d3.html
安装完毕以后配置一下网络让虚拟机可以上外网
二、开始操作
1.更换为阿里云apt源(为了下载更快)
vim /etc/apt/sources.list
并将其中内容更换为:
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
(xenial为ubuntu16版本的代号,不同版本需要使用不同代号)
2.更新apt源
sudo apt-get update
sudo apt-get upgrade
3. 修改pip源为国内豆瓣源(这样在下载python所依赖的文件时会更快)
mkdir .pip
vim .pip/pip.conf
在pip.conf文件中写入如下内容
[global]
index-url = http://pypi.douban.com/simple/
trusted-host = pypi.douban.com
4.下载指定版本的openstack及devstack (可能会下载超时,多执行几次直到成功)
git clone https://github.com/openstack-dev/devstack -b stable/queens
5.创建stack用户,并赋予sudo权限
sudo useradd -s /bin/bash -d /opt/stack -m stack
$ echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack
6.将下载的devstack文件夹复制到stack用户下
mv devstack /opt/stack
chown -R stack:stack /opt/stack/devstack
7.切换 stack用户下,并进入devstack文件夹
sudo -u stack -i
cd devstack
8.创建编辑local.conf
sudo vi local.conf
脚本示例:
[[local|localrc]]
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
ADMIN_PASSWORD=123
DATABASE_PASSWORD=123
RABBIT_PASSWORD=123
SERVICE_PASSWORD=$ADMIN_PASSWORD
HOST_IP=192.168.123.50
disable_service etcd3
(HOST_IP处填写虚拟机设置的ip,ADMIN_PSSWORD这些密码自己设置,后续执行脚本时会输入)
9.切换到files目录下,先执行如下两条命令单独下载好(脚本执行下载可能出现会超时)
cd files/
wget -c https://github.com/coreos/etcd/releases/download/v3.1.10/etcd-v3.1.10-linux-amd64.tar.gz
wget -c https://github.com/coreos/etcd/releases/download/v3.1.7/etcd-v3.1.7-linux-amd64.tar.gz
10.回到devsatck目录下,运行脚本
. ./stack.sh
11.成功安装如图:
三、安装中遇到的问题
问题1:
pip版本可以更新,但是老是锁定为9.0.3
解决:
在devstack/tools文件夹下找到cap-pip.txt,将内容改为 pip!=8
问题2:
下载的依赖库版本老是冲突
解决:
在stack用户下找到upper-constraints.txt;在文件中搜索six===1.10.0并将其修改为six===1.14.0类似于这样的报错都可以这样去修改
问题3:
upper-constraints.txt文件中的库的版本相同但是下载时失败
解决:
pip install Xstatic-Rickshaw===1.5.0.0
问题4:
etcd.service failed because the control process exited with error code
解决:
在local.conf中添加上disable_service etcd3
问题5:
Unable to establish SSL connection
解决:
curl -O -L http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img -O /opt/stack/devstack/files/cirros-0.3.4-x86_64-disk.img --no-check-certificate
问题6:
glance g-api did not start (忘记截图了,大概是这样)
解决:
- 重启了虚拟机
- 在devsatck目录下执行. ./unstack.sh脚本
- 再执行. ./stack.sh
问题7:
Time error或者time out
解决:
基本上是网络不稳定,直接重新执行. ./stack.sh