问题背景

最近在研究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版本就圆满结束了,如又遇到问题的小伙伴可以留言,我会第一时间回复,期待大家一起探讨。

参考文章

Devstack 安装OpenStack Pike版本(单机环境)的更多相关文章

  1. devstack安装openstack newton版本

    准备使用devstack安装openstack N版,搞一套开发环境出来.一连整了4天,遇到各种问题,各种错误,一直到第4天下午4点多才算完成. 在这个过程中感觉到使用devstack搭建openst ...

  2. 使用devstack安装openstack

    使用devstack安装openstack 环境介绍,宿主机器 Fedora release 29 (Twenty Nine) 40核心cpu,32g内存 设想, 在fedora中安装kvm,虚拟出U ...

  3. Vmware虚拟机Devstack安装openstack(All in one)

    Vmware虚拟机Devstack安装openstack(All in one) 博客园第一篇博客,先练习一下. 官方文档 环境 Vmware虚拟机 OS : Ubuntu 14.04 Nat网络,D ...

  4. ubuntu18.04系统下用devstack安装openstack(最新版)

    ubuntu18.04系统下用devstack安装openstack(最新版) 2018年12月14日 16:34:14 Cherls 阅读数:427   前期准备: 安装git,升级pip,其他 s ...

  5. 照着官网来安装openstack pike之创建并启动instance

    有了之前组件(keystone.glance.nova.neutron)的安装后,那么就可以在命令行创建并启动instance了 照着官网来安装openstack pike之environment设置 ...

  6. 照着官网来安装openstack pike之environment设置

    安装openstack前的准备环境: 两个centos7系统的环境:192.168.101.10 node1,192.168.101.11 node2 控制节点node1,计算节点node2 1.统一 ...

  7. 使用DevStack安装openstack(单机环境)

    DevStack是一系列可扩展的脚本,用于根据git master的最新版本快速启动完整的OpenStack环境.它以交互方式用作开发环境,并作为OpenStack项目功能测试的基础. 参考源码. 警 ...

  8. 体验devstack安装openstack

    由于公司制度,工作环境是不能直接上网的,所以在工作时间从没有体验过devstack或者其他联网方式安装openstack. 因自己购置了一台不错的主机,因而决定尝试安装一番,经过一段为期不短的内心极度 ...

  9. devstack安装openstack

    devstack是目前安装OpenStack最为方便的工具,一般用于开发和测试OpenStack.如果想在生产环境安装的话,需要对 devstack做很多定制,或者使用puppet/chef等更成熟的 ...

随机推荐

  1. Windows Server 2016-图形化备份域控制器

    上边几章节我们补充了有关Windows Server 2016系统层面的相关内容,本章切回Active Directory正题,继续围绕AD域相关内容进行不断梳理补充.Windows Server B ...

  2. 用VSCode开发一个基于asp.net core 2.0/sql server linux(docker)/ng5/bs4的项目(1)

    最近使用vscode比较多. 学习了一下如何在mac上使用vscode开发asp.netcore项目. 这里是我写的关于vscode的一篇文章: https://www.cnblogs.com/cgz ...

  3. 前端JS面试题汇总 Part 2 (null与undefined/闭包/foreach与map/匿名函数/代码组织)

    原文:https://github.com/yangshun/front-end-interview-handbook/blob/master/questions/javascript-questio ...

  4. iOS开发引入第三方类库的问题

    在开发iOS程序的过程中,通常在导入第三方的类库(.a/.o)文件会报出一系列的错误: Undefined symbols for architecture i386: "std::stri ...

  5. 看eShopOnContainers学一个EventBus

    最近在看微软eShopOnContainers 项目,看到EventBus觉得不错,和大家分享一下 看完此文你将获得什么? eShop中是如何设计事件总线的 实现一个InMemory事件总线eShop ...

  6. dojo中取查询出来的地市维表数据的id

    1.页面中引入隐藏域 <input type="hidden" id="area_desc"/> 2.通过在属性中设置 onchange:funct ...

  7. Struts2实现文件上传(一)

    Struts2实现文件上传 文件上传成功后结果页面 result.jsp: <%@ page language="java" import="java.util.* ...

  8. MyEclipse提示出错

    1.错误描述 The 'org.eclipse.jdt.ui.JavaAllCompletionProposalComputer' proposal computer from 'org.eclips ...

  9. Caused by: java.lang.ClassNotFoundException: org.springframework.orm.hibernate4.HibernateTemplate

    1.错误描述 严重: Context initialization failed org.springframework.beans.factory.CannotLoadBeanClassExcept ...

  10. hdu5977 Garden of Eden

    都不好意思写题解了 跑了4000多ms 纪念下自己A的第二题 (我还有一道freetour II wa20多发没A...呜呜呜 #include<bits/stdc++.h> using ...