问题背景
最近在研究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 updateapt-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 .pipvim .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/stackchown -R stack:stack /opt/stack/devstack
9、切换到stack用户,切换用户后,所有的操作都是在stack用户下,直到部署成功都不需要切换用户
su - stack
10、给stack用户配置一样的pip豆瓣源(安装第三方包要快些)
mkdir .pipvim .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.gzwget -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版本就圆满结束了,如又遇到问题的小伙伴可以留言,我会第一时间回复,期待大家一起探讨。