Devstack 安装OpenStack Pike版本(单机环境)

问题背景

最近在研究OpenStack的时候,需要对其源代码进行调试,公司服务器上部署的OpenStack环境又不能随意的进行折腾,为了研究的持续性和方便性,就决定再自己的虚拟机上面使用Devstack方式部署一个OpenStack环境起来,搜索各种博客结合着官网的指导,花了2天时间终于把这个事情搞定了,再次分享出这个过程。

环境准备

宿主机:windows 10
虚拟机及其软件见下图:

至于这两个软件的安装和配置,如有不懂的可以自行google或者百度。

OpenStack安装

1、更换apt源为阿里源

vim /etc/apt/sources.list(如果没有权限,请使用命令:sudo 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

2、保存并退出,执行下面的命令:

apt-get update
apt-get upgrade

3、设定时间同步
设定时区:dpkg-reconfigure tzdata
选择Asia -> 再选择Shanghai -> OK

同步时间命令:

- sudo apt-get install ntpdate // 安装时间同步工具
- sudo ntpdate cn.pool.ntp.org // 与网络服务器同步时间
- date // 查看时间是否已经同步

4、安装pip(此步骤可以省略,因为ubuntu自带的python已经安装了pip的,但是由于系统自带的pip版本可能较低,所以,为了保险起见还是安装一下的好)

apt-get install python-pip(权限不够就执行:sudo apt-get install python-pip)

5、pip更换为豆瓣源

mkdir .pip
vim .pip/pip.conf

将下面内容写入:

[global]
index-url = http://pypi.douban.com/simple/
trusted-host = pypi.douban.com

6、下载devstack(这里安装的是pike版本)

git clone https://github.con/openstack-dev/devstack -b stable/pike

7、创建stack用户

devstack/tools/create-stack-user.sh

8、将devstack目录放到/opt/stack下,并设置权限

mv devstack /opt/stack
chown -R stack:stack /opt/stack/devstack

9、切换到stack用户,切换用户后,所有的操作都是在stack用户下,直到部署成功都不需要切换用户

su - stack

10、给stack用户配置一样的pip豆瓣源(安装第三方包要快些)

mkdir .pip
vim .pip/pip.conf

将下面的内容写入:

[global]
index-url = http://pypi.douban.com/simple/
trusted-host = pypi.douban.com

事实证明:这里也会存在问题,当devstack的requirements文件依赖的远程第三方包的版本,在豆瓣源或者阿里源中找不到匹配版本时,安装是会出错的。当出现这种情况的时候,可以注释掉这个源,如下图所示:

11、切换到devstack目录下

cd devstack

重要部分

创建local.conf配置文件

vim local.conf

将下面的内容写入:

  1 [[local|localrc]]
  2 # Define images to be automatically downloaded during the DevStack built process.
  3 DOWNLOAD_DEFAULT_IMAGES=False
  4 IMAGE_URLS="http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img"
  5 
  6 # use TryStack git mirror
  7 GIT_BASE=http://git.trystack.cn
  8 NOVNC_REPO=http://git.trystack.cn/kanaka/noVNC.git
  9 SPICE_REPO=http://git.trystack.cn/git/spice/sice-html5.git
 10 
 11 
 12 # Credentials
 13 DATABASE_PASSWORD=admin
 14 ADMIN_PASSWORD=admin
 15 SERVICE_PASSWORD=admin
 16 SERVICE_TOKEN=admin
 17 RABBIT_PASSWORD=admin
 18 #FLAT_INTERFACE=enp0s3
 19 
 20 HOST_IP=172.18.0.184

HOST_IP=虚拟机IP

12、切换到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

一次下载不成功请多次执行上面的命令,直到成功为止

13、切回devstack目录下

cd ..

14、运行 ./stack.sh

按照上面的步骤,走到这里,一般情况下,只需要等待命令执行结束,出现下面的图示,就说明devstack的openstack安装成了

如果遇到其他报错,主要是检查local.conf,然后清理上次错误配置./unstack.sh和clean.sh,然后再执行./stack.sh配置,等待完成。如果遇到超时(timeout)错误,直接再次执行./stack.sh

至此,devstack部署openstack pike版本就圆满结束了,如又遇到问题的小伙伴可以留言,我会第一时间回复,期待大家一起探讨。

参考文章

原文地址:https://www.cnblogs.com/love9527/p/8298959.html