Devstack快速部署OpenStack Mitaka用户指南 All in One(by qiqishuang csdn)

本篇主要阐述通过DeveStack 去部署Openstack(mitaka),对大多数来说安装部署Openstack 来说是个痛苦的过程,尤其是 OpenStack和它依赖的一些组件在快速发展中,经常出现这个版本组件对不上那个版本 dashboard等情况。如果只是看看或者初期玩玩 OpenStack的话,使用DevStack也是个不错的办法。DevStack采用了自动化源码部署的方式,适用于开发环境的部署和Openstack开发者,单节点,小环境;这里采用的操作系统为Ubuntu14.04。

一、操作系统选择

Devstack目前是支持Ubuntu14.04和CentOS 7,不过全球的OpenStack开发者,大部分都在用Ubuntu 14.04。所以为了减少麻烦,还是建议你使用Ubuntu 14.04。建议下载官网mininalCD。选择Ubuntu 14.04 LTS “Trusty Tahr”版本。
https://help.ubuntu.com/community/Installation/MinimalCD
操作系统安装详见:
建议用vmware安装ubuntu mini,nat网络模式,安装过程中,多做快照备份。

二、源的选择

安装devstack痛苦的其中一个原因,是OpenStack代码,都需要从github下载,这样由于网络的原因,经常导致各种错误,简直让人崩溃,各种错误,也根本无法通过google来解决。

目前国内已经提供了完整的OpenStack的github的mirror。http://git.trystack.cn
这样Devstack成功概率会大大提高。另外devstack还会下载image,下载的过程也是非常缓慢。trystack也提供大家常用的image下载。http://images.trystack.cn

对于ubuntu的系统,默认安全会从国外的源安装,导致速度比较慢,可以修改/etc/apt/source.list文件。建议备份原有的。

备份默认源

mv /etc/apt/source.list /etc/apt/source.list.bak
vi /etc/apt/source.list

设置新源

deb http://cn.archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse
deb http://cn.archive.ubuntu.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://cn.archive.ubuntu.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://cn.archive.ubuntu.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://cn.archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse

更新apt

apt-get update

三、同步时间

http://www.pool.ntp.org是NTP的官方网站,在http://www.pool.ntp.org/zone/cn我们可以找到我们国家的NTP服务器。

ntpdate  cn.pool.ntp.org  

四、devStack下载

下载devstack,并指定稳定版本。

默认无论是Devstack和OpenStack,都是采用Master的代码进行安装,这样经常会出现,今天安装成功,明天失败,代码时刻在变化。所以我们不仅仅要指定OpenStack的版本,还需要指定Devstack的版本,才能提供安装成功的概率。

apt-get install git  
git clone http://git.trystack.cn/openstack-dev/devstack.git -b stable/mitaka  

或者

$git clone https://github.com/openstack-dev/devstack.git  #克隆devstack的Git代码仓库  
cd devstack/;git branch -a   #显示本地分支  
git checkout -b mitaka  origin/stable/mitaka  #切换到指定mitaka分支或标签 

五、创建stack用户

目前Devstack脚本已经不支持直接使用root身份运行,你需要创建stack用户运行。

./home/devstack/tools/create-stack-user.sh

修改devstack目录权限,让stack用户可以运行。

chown -R stack:stack /home/devstack
chmod 777 /dev/pts/0

保证该用户下sudo可以免密码运行,否则脚本执行过程中会出现权限问题。
可以修改/etc/sudoers, 在行 root ALL=(ALL:ALL) ALL 后添加 stack ALL=(ALL) ALL 然后保存文件,如下:

sudo echo "stack ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers 

root切换到 stack 用户

su stack 

六、配置local.conf文件

建议创建最小化配置文件localrc,即使用非交互模式安装,内容如下:

[[local|localrc]]

# use TryStack git mirror
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

# If the ``*_PASSWORD`` variables are not set here you will be prompted to enter
# values for them by ``stack.sh``and they will be added to ``local.conf``.
ADMIN_PASSWORD=admin
DATABASE_PASSWORD=admin
RABBIT_PASSWORD=admin
SERVICE_PASSWORD=$ADMIN_PASSWORD

# Neither is set by default.
HOST_IP=192.168.108.128
#HOST_IPV6=2001:db8::7

# path of the destination log file.  A timestamp will be appended to the given name.
LOGFILE=$DEST/logs/stack.sh.log

# Old log files are automatically removed after 7 days to keep things neat.  Change
# the number of days by setting ``LOGDAYS``.
LOGDAYS=2

# Using stable/mitaka branches
# ---------------------------------

# Uncomment these to grab the stable/mitaka branches from the
# repos:
CINDER_BRANCH=stable/mitaka
GLANCE_BRANCH=stable/mitaka
HORIZON_BRANCH=stable/mitaka
KEYSTONE_BRANCH=stable/mitaka
KEYSTONECLIENT_BRANCH=stable/mitaka
NOVA_BRANCH=stable/mitaka
NOVACLIENT_BRANCH=stable/mitaka
NEUTRON_BRANCH=stable/mitaka
SWIFT_BRANCH=stable/mitaka

# Swift is now used as the back-end for the S3-like object store. Setting the
# hash value is required and you will be prompted for it if Swift is enabled
# so just set it to something already:
SWIFT_HASH=66a3d6b56c1f479c8b4e70ab5c2000f5

# For development purposes the default of 3 replicas is usually not required.
# Set this to 1 to save some resources:
SWIFT_REPLICAS=1

# The data for Swift is stored by default in (``$DEST/data/swift``),
# or (``$DATA_DIR/swift``) if ``DATA_DIR`` has been set, and can be
# moved by setting ``SWIFT_DATA_DIR``. The directory will be created
# if it does not exist.
SWIFT_DATA_DIR=$DEST/data

其中:

FLOATING_RANGE:
    表示的OpenStack云实例使用的FloatingIP的范围,这个范围应该和虚拟机的IP在同一个网段,但是是当前虚拟机没有使用的IP的范围。例如:我的IP是211.87.226.157,则我将FLOATING_RANGE设置为211.87.226.224/27,表示FloatingIP的范围是211.87.226.225~254。 

FIXED_RANGE:
    表示的在OpenStack上创建云实例后,该云实例内部使用的IP,可以不用修改。 
FIXED_NETWORK_SIZE和FLAT_INTERFACE都不用修改,然后设置一下用户的密码,其中的ADMIN_PASSWORD待会登陆DashBoard是会用到,不要忘了自己设置的密码。

或者
直接使用devstack/sample/local.conf进行配置。bug需要进一步解决。

cp /home/devstack/samples/local.conf /home/devstack/local.conf

记得手动修改HOST_IP为你的虚拟机ip。

此外:
修改pip源可以加快安装速度,国内可以使用豆瓣源。在/root主目录下创建.pip文件夹

mkdir ~/.pip
vi ~/.pip/pip.conf

然后在该目录下创建pip.conf文件编写如下内容:

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

保存并退出

七、devstack安装

运行

./stack.sh

Devstack 执行过程:
(1)下载并安装Openstack运行所需要的系统软件,大概包括一些python的组件、mysql、rabbitmq-server等
(2)下载openstack组件,包括nova 、keystone、glance、noVNC、horizon等
(3)下载并安装openstack源码所依赖的python库和框架
(4)安装openstack各组件
(5)启动各项服务

泡杯茶,等着就可以啦!
由于网速愿意,博主装了两个小时,最后还是哦啦。
安装成功结果如下:

2016-07-21 16:14:58.134 | ++lib/lvm:set_lvm_filter:173                sed 's/\/dev\///g'
2016-07-21 16:14:58.142 | ++lib/lvm:set_lvm_filter:173                echo -e /dev/loop1
2016-07-21 16:14:58.165 | +lib/lvm:set_lvm_filter:173                pv=loop1
2016-07-21 16:14:58.182 | +lib/lvm:set_lvm_filter:174                new='"a|loop1|", '
2016-07-21 16:14:58.196 | +lib/lvm:set_lvm_filter:175                filter_string='global_filter = [ "a|loop0|", "a|loop1|", '
2016-07-21 16:14:58.212 | +lib/lvm:set_lvm_filter:177                filter_string='global_filter = [ "a|loop0|", "a|loop1|", "r|.*|" ]  # from devstack'
2016-07-21 16:14:58.221 | +lib/lvm:set_lvm_filter:179                clean_lvm_filter
2016-07-21 16:14:58.229 | +lib/lvm:clean_lvm_filter:154              sudo sed -i 's/^.*# from devstack$//' /etc/lvm/lvm.conf
2016-07-21 16:14:58.335 | +lib/lvm:set_lvm_filter:180                sudo sed -i '/# global_filter = \[*\]/a\    global_filter = [ "a|loop0|", "a|loop1|", "r|.*|" ]  # from devstack' /etc/lvm/lvm.conf
2016-07-21 16:14:58.368 | +lib/lvm:set_lvm_filter:181                echo_summary 'set lvm.conf device global_filter to: global_filter = [ "a|loop0|", "a|loop1|", "r|.*|" ]  # from devstack'
2016-07-21 16:14:58.381 | +./stack.sh:echo_summary:379               [[ -t 3 ]]
2016-07-21 16:14:58.389 | +./stack.sh:echo_summary:379               [[ True != \T\r\u\e ]]
2016-07-21 16:14:58.431 | +./stack.sh:echo_summary:385               echo -e set lvm.conf device global_filter to: global_filter = '[' '"a|loop0|",' '"a|loop1|",' '"r|.*|"' ']' '#' from devstack

========================
DevStack Components Timed
========================

run_process - 51 secs
apt-get-update - 11 secs
pip_install - 3357 secs
restart_apache_server - 17 secs
wait_for_service - 30 secs
git_timed - 5615 secs
apt-get - 353 secs



This is your host IP address: 192.168.108.128
This is your host IPv6 address: ::1
Horizon is now available at http://192.168.108.128/dashboard
Keystone is serving at http://192.168.108.128:5000/
The default users are: admin and demo
The password: admin
stack@ubuntu:/home/ubuntu/devstack$ 

八、访问openstack dashboard界面

打开chrome输入: http://192.168.108.128/dashboard
久违的dashboard:
这里写图片描述

九、devstack安装过程问题处理

  1. 现象如下:generate-subunit command not found
Cloning into '/opt/stack/requirements'...
fatal: unable to access 'https://git.openstack.org/openstack/requirements.git/': Could not resolve host: git.openstack.org; Unknown error
+functions-common:git_timed:603            [[ 128 -ne 124 ]]
+functions-common:git_timed:604            die 604 'git call failed: [git clone' https://git.openstack.org/openstack/requirements.git '/opt/stack/requirements]'
+functions-common:die:186                  local exitcode=0
+functions-common:die:187                  set +o xtrace
[Call Trace]
./stack.sh:715:git_clone
/opt/devstack/functions-common:537:git_timed
/opt/devstack/functions-common:604:die
[ERROR] /opt/devstack/functions-common:604 git call failed: [git clone https://git.openstack.org/openstack/requirements.git /opt/stack/requirements]
Error on exit
./stack.sh: line 494: generate-subunit: command not found

解决办法:

sudo apt-get install python-pip
sudo pip install --upgrade pip
sudo pip install -U os-testr
这三条命令可以解决那个问题。

若os-testr无法apt-get安装,则:
这里写图片描述

若ascii codec canot decode…,则:
这里写图片描述

参考文章:
http://www.chenshake.com/openstack-project-series-3-devstack/
http://blog.csdn.net/myslq/article/details/51837578-series-3-devstack/
http://my.oschina.net/u/2381034/blog/491610?p=1

本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。
Spark版本: 1.6.2 概览 Spark SQL用于处理结构化数据,与Spark RDD API不同,它提供更多关于数据结构信息和计算任务运行信息的接口,Spark SQL内部使用这些额外的信息完成特殊优化。可以通过SQL、DataFrames API、Datasets API与Spark SQL进行交互,无论使用何种方式,SparkSQL使用统一的执行引擎记性处理。用户可以根据自己喜好,在不同API中选择合适的进行处理。本章中所有用例均可以在 spark-shell、pyspark shell、s

HBase工作原理学习 - 2016-07-22 18:07:56

HBase工作原理学习   1 HBase简介 HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建大规模结构化的存储集群。HBase的目标是存储并处理大型数据,具体来说是仅需使用普通的硬件配置,就能够处理由成千上万的行和列所组成的大型数据。 与MapReduce的离线批处理计算框架不同,HBase是一个可以随机访问的存储和检索数据平台,弥补了HDFS不能随机访问数据的缺陷,适合实时性要求不是非常高的业务场景。HBase存储的都是Byte数组
一:RDD粗粒度与细粒度 粗粒度: 在程序启动前就已经分配好资源(特别适用于资源特别多而且要进行资源复用) 细粒度:计算需要资源是才分配资源,细粒度没有资源浪费问题。 二: RDD 的解密: 1,分布式(擅长迭代式是spark的精髓之所在) 基于内存(有些时候也会基于硬盘) 特别适合于计算的计算框架 2,RDD代表本身要处理的数据,是一个数据集Dataset RDD本身是抽象的,对分布式计算的一种抽象 RDD 定义: 弹性分布数据集 代表一系列的数据分片 3,RDD弹性之一: 自动进行内存和磁盘数据存储的

spark 集群搭建 详细步骤 - 2016-07-22 18:07:20

最近好不容易搞到了三台测试机,可以用来搭建spark集群搞模型。本宝宝开心得不行,赶紧行动,把spark集群搭起来,模型跑起来。 1.搭建hadoop集群 hadoop的hdfs文件系统是整个生态圈的基础,因为数据量大了以后,数据一般就都放hdfs上头了。因为四台测试机之前已经搭建好了hadoop集群环境,而且经过本宝宝测试,hadoop集群也是可用的,所以就省了搭hadoop集群的功夫。 2.配置集群host 四台机器的hostname如下: namenodetest01.hadoop.xxx.com

使用Fuel安装Openstack - 2016-07-22 18:07:11

Openstack自动化部署工具,主要用于生产环境. 一. 环境准备 这里用的是Openstack 9.0版本. Fuel Documentation 下载 Fuel for OpenStack镜像文件 , 用于安装Feul Master. 安装 Xshell , 用于远程连接. 二. 安装fuel_master节点 1. VirtualBox网络配置 管理-全局设定-网络-仅主机(Host-Only)网络 新建三张新的网卡: Host-Only Ethernet Adapter #1 IPv4: 10.
flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(比如文本、HDFS、Hbase等)的能力 。 一、什么是Flume? flume 作为 cloudera 开发的实时日志收集系统,受到了业界的认可与广泛应用。Flume 初始的发行版本目前被统称为 Flume OG(original generation),属于 cloudera。但随着 FLume 功能的扩展,Flume O

KafkaStreams介绍(二) - 2016-07-22 18:07:55

说明: 本文是Confluent Platform 3.0版本中对于Kafka Streams的翻译。 原文地址: https://docs.confluent.io/3.0.0/streams/index.html 看了很多其他人翻译的文档,还是第一次翻译,有什么翻译的不好的地方还请指出。   这是Kafka Streams介绍的第二篇,以前的介绍如下: http://blog.csdn.net/ransom0512/article/details/51971112   1.  快速入门 1.1.  目
2016年7月19日下午,笔者做客国泰君安通信研究团队”软银收购ARM“深度解读电话会议,与在线的150多位机构投资者分享了对于”软银收购ARM“的个人观点。 以下为电话会议实录,略经编辑以及后期补充部分观点。 主持人:各位同事朋友大家下午好,我是国泰君安通信行业分析师宋嘉吉,欢迎大家今天参加本次电话会议,此次会议的主题是软银收购ARM,7月18号软银宣布以243亿英镑收购半导体IP供应商ARM,是对未来物联网战略的提前卡位,我们认为这也是物联网行业布局芯片的又一重磅催化。今天大唐电信封了涨停,按照我们对
一、HBase伪分布式集群安装 1、安装包解压 $ cd app/ $ tar -xvfhbase-1.2.0-cdh5.7.1.tar.gz $ rmhbase-1.2.0-cdh5.7.1.tar.gz   2、添加环境变量 $ cd ~ $ vim .bashrc exportHBASE_HOME=/home/developer/app/hbase-1.2.0-cdh5.7.1 exportPATH=$PATH:$HBASE_HOME/bin $ source .bashrc   3、编辑hbase
本文将介绍Oracle集成云Agent的基础架构,所包含的组件,和如何连接云与OP应用。 目前/典型的集成方式 目前常用的将云应用/基于互联网的应用与企业内部部署(OP)应用连接的方式为:穿透一层或者更多的防火墙,使用反向代理、Oracle API Gateway或者OHS。要实现这些操作需要多种专业知识,比如防火墙需要开放入站端口,暴露一个私有的SOAP/REST服务并且配置网络路由。SOAP/REST服务可以用SOA套件之类的产品实现,比如与CRM系统进行通讯,实现客户信息的接收。如下图所示: 如果使