问题背景

最近在研究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. Centos/linux下的JDK安装

    1.连接到centos的远程主机上 #你的用户名 ssh root@xxxxx 2.输入密码登录 3.最好将镜像改为阿里云的镜像 http://mirrors.aliyun.com/help/cent ...

  2. java4 - 函数(方法)

    一.学习大纲: 1. 定义函数可以将功能封装 2. 函数的级别都是同级别的,不能进行函数套用 3. 便于对该功能进行复用 4. 函数只有被调用才能被执行 5. 函数的出现提高了代码的复用性 6. 函数 ...

  3. js中判断数组中是否含有某个字符串方法

    1.两个数组间互相校验 Var  inArray = function(arr, item) { for(var i = 0; i < arr.length; i++) { if(arr[i] ...

  4. SpringBoot实战 之 接口日志篇

    在本篇文章中不会详细介绍日志如何配置.如果切换另外一种日志工具之类的内容,只用于记录作者本人在工作过程中对日志的几种处理方式. 1. Debug 日志管理 在开发的过程中,总会遇到各种莫名其妙的问题, ...

  5. FineUIPro控件库深度解析

    FineUIPro控件库 FineUIPro是一套基于jQuery的专业ASP.NET控件库,始于2008年的开源版FineUI控件库. 当年为了提升项目的开发效率,降低代码复杂度,减少对CSS和Ja ...

  6. 用户态Linux内核

    User Mode Linux 是可以在用户态启动的 Linux版本,最新版linux内核已提供了支持.这使我们能在类似 OpenVZ 虚拟化技术的系统上,使用最新的 Linux 内核:并且可以在非 ...

  7. openstack-ocata-仪表盘服务6

    Dashboard(horizon)是一个web接口,使得云平台管理员以及用户可以管理不同的Openstack资源以及服务.这个部署示例使用的是 Apache Web 服务器.一. 安装和配置 接下来 ...

  8. 面向对象的线程池Threadpool的封装

    线程池是一种多线程处理形式,预先创建好一定数量的线程,将其保存于一个容器中(如vector), 处理过程中将任务添加到队列,然后从容器中取出线程后自动启动这些任务,具体实现如下. 以下是UML图,展示 ...

  9. [JCIP笔记] (一)多线程的起源

    在很久很久以前,那时的计算机还没有操作系统这种东西,所以只能有一个程序,从头到尾地跑.于是这个程序要负责使用所有的资源,还得响应外部请求.想想这个程序得多复杂啊--为了做成一件事,可能要先把内存啊.I ...

  10. 5.4 TLP中与数据负载相关的参数

    在PCIe总线中,有些TLP含有Data Payload,如存储器写请求.存储器读完成TLP等.在PCIe总线中,TLP含有的Data Payload大小与Max_Payload_Size.Max_R ...