本文总结Ubuntu 14.04下部署DevStack的过程以及一些可能遇到的问题。

  一、安装

  以下的操作最好在普通用户下进行,至少在git clone devstack的时候使用普通用户,这样可以避免一些不必要的权限问题,当然,以后也可以使用权限更改命令来修改普通用户的权限,这种方法下文将会介绍。

  1.首先获取系统更新内容

  $ sudo apt-get update

  2.接着升级当前发行版

  $ sudo apt-get dist-upgrade

  3.重启电脑令更新生效

  4.安装git,已有的可以忽略本步

  $ sudo apt-get install git

  5.获取devstack源码放置到TARGET_DIR/devstack目录中,然后将git分支从默认的master切换到稳定版的icehouse

  $ cd TARGET_DIR
  $ git clone https://github.com/openstack-dev/devstack.git
  $ git checkout -b origin/stable/icehouse

  6.更该pip源,需要新建pip.conf文件指定目标源(这里以豆瓣的pip源为例),避免因为pip源连接失败引起的安装失败

  $ mkdir ~/.pip
  $ vim ~/.pip/pip.conf
  --------pip.conf--------
  [global]
  index-url=http://pypi.douban.com/simple/

  7.采取预先配置安装组件的方式,编辑并生成localrc文件,或将已有的localrc移入devstack/目录

  $ cp localrc TARGET_DIR/devstack/

  关于localrc文件的具体内容和解释说明,请参考这篇博文

  8.运行stack.sh脚本,注意只能使用非root用户执行。

  $ cd TARGET_DIR/devstack
  $ ./stack.s

  二、安装过程中遇到的问题

  1.pip源安装失败

  目前pip采用python的官方源,因此可能存在连接问题,可以将pip源替换成国内的(如豆瓣的),具体参考上面安装DevStack时的第6步。

  2.权限问题

  (1)由于我平成喜欢使用root用户进行操作,所以在git clone devstack时可能使用的是root用户,创建的devstack目录的属主和属组都是root,这样,在执行stack.sh脚本时,需要在devstack目录下创建一些文件,就会造成权限错误。这个问题比较简单,可以通过chmod更改devstack目录的权限,也可以通过chown更改devstack的属主与属组。

  (2)另一个问题是devstack下载安装openstack组件的目录权限问题,比如我采用了localrc中默认的/opt/stack目录来存放各个组件,因此也可能存在安装脚本对该目录权限不足的问题,具体的解决方案也比较简单,只要更改该目录的访问权限就行了。

  $ chmod  /opt/stack -R

  3.组件下载失败

  安装脚本在第一遍安装组件时会下载组件的源代码,由于网络连接的问题,这时很容易出现错误,简单的解决方案就是当安装时的错误信息提示是组件下载失败时,手动到Github上克隆其源代码,放置在自己设定的组件目录(如/opt/stack)中,然后使用git checkout命令切换到目标分支(这里是origin/stable/icehouse),重新运行安装脚本,就可以通过。

  如果Github的克隆速度非常缓慢,可以在localrc配置文件的GIT_BASE字段交替尝试git://git.openstack.org和https://github.com两个选项,在localrc文件的服务分支选择选项上(如NOVA_BRANCH,CINDER_BRANCH,KEYSTONE_BRANCH)等字段设置为stable/icehouse,多试几遍就能够解决。

  4.Bug:'amqplib' is not in global_requirements.txt

  这是一个已公布的Bug

  Bug #1343838

  详细解决可以参考OpenStack团队的code review

  code review

  change commit

  如果遇到,需要手动添加一些依赖,同时将localrc中的RECLONE置为false

  $ vim /opt/stack/requirements/global_requirements.txt //假设你的openstack组件目录/stack是在默认的/opt目录中。
  --------Add Content Below-------
  amqplib>=0.6.1
  $ vim TARGET_DIR/devstack/localrc
  --------Set RECLONE to FALSE--------
  RECLONE=FALSE

  重新执行stack.sh,这个问题就能通过。

  5.Bug: Service n-novnc is not running

  这是一个已公布的bug,原因是nova依赖的对象存在缺陷。

  我将这个问题报告在

  https://bugs.launchpad.net/devstack/+bug/1361108

  根据评论得知,这是一个老问题,最早出现在havana版本的nova上,具体的内容可以参考这里

  https://bugs.launchpad.net/ubuntu/+source/nova/+bug/1228490

因为nova依赖的websockify存在漏洞所致。后来websockify 0.5.1解决了这个问题,nova团队也对nova的依赖关系进行了相应的调整

  https://github.com/openstack/nova/commit/3eb67b811ae2442bd86781d9f1c4078a982cfe84

  但是,使用pip安装时默认安装最新版本的websockify 0.6.0,这里无语的是先前版本0.5.1 fix的bug又回来了。因此遇到这个问题时需要手动降级websockify。

  $ sudo pip uninstall websockify
  $ sudo pip install websockify==0.5.

  我将这个问题汇报给了websockify的团队

  https://github.com/kanaka/websockify/issues/136

  目前问题仍然open,希望得到他们的答复。

Ubuntu 14.04 安装 DevStack与遇到的的问题记录的更多相关文章

  1. ubuntu 14.04安装 DevStack的脚本配置文件——localrc

    本文ubuntu 14.04安装 DevStack的脚本配置文件——localrc,本文件名已经逐渐被取代,但是出于后向兼容性,使用该文件仍然可以为stack.sh安装脚本指定安装DevStack时的 ...

  2. 在Ubuntu 14.04安装和使用Docker

    Docker是一个开源软件,它可以把一个Linux应用和它所依赖的一切(比如配置文件)都封装到一个容器.然而,Docker与虚拟机不同,它使用了沙箱机制,Docker容器不运行操作系统,它共享主机上的 ...

  3. [转]在Ubuntu 14.04安装和使用Docker

    在Ubuntu 14.04安装和使用Docker 作者:chszs,版权所有,未经同意,不得转载.博主主页:http://blog.csdn.net/chszs Docker是一个开源软件,它可以把一 ...

  4. Ubuntu 14.04 安装VMware 12

    /*********************************************************************** * Ubuntu 14.04 安装VMware 12 ...

  5. Ubuntu 14.04安装Chromium浏览器并添加Flash插件Pepper Flas

    转自Ubuntu 14.04安装Chromium浏览器并添加Flash插件Pepper Flash Player Chromium谷歌的开源浏览器将不再支持Netscape浏览器插件API,Adobe ...

  6. ubuntu 14.04 安装搜狗拼音输入法

    原文:ubuntu 14.04 安装搜狗拼音输入法 ubuntu桌面系统下终于有了好用的拼音法-搜狗拼音输入法,欲在ubuntu 14.04下安装搜狗拼音输入法相当的简单. 先到搜狗拼音官网下载对应的 ...

  7. ubuntu 14.04 安装torch及编译环境zbstudio

    ubuntu 14.04 安装torch及编译环境zbstudio torch zbstudio 本来是安装官网给的步骤安装torch的,可是碰到一系列的问题,后来参考网上的安装方法安装成功了 官网安 ...

  8. ubuntu 14.04 安装svn server (subversionedge )

    ubuntu 14.04 安装subversionedge 请仔细阅读安装包自带的readme文件! 1.先去官网,找安装包: http://subversion.apache.org/ http:/ ...

  9. Ubuntu 14.04 安装 sysrepo v0.7.5

    参考: Tentative gNMI support with sysrepo protobuf-c/protobuf-c Ubuntu 14.04 安装 sysrepo v0.7.5 安装依赖: s ...

随机推荐

  1. Delphi下IOCP开源框架:DIOCP 成功应用案例分享

    首先说明,该项目不是本人的项目,本文转自盒子. 该项目使用的DIOCP版本为1.0,目前diocp为3.5 以下是盒子的原文 ------------------------------------- ...

  2. BI--SAP BI的权限管理

    源地址 :http://silverw0396.iteye.com/blog/229274 一.sapBI的用户分类 There are different types of users in SAP ...

  3. Mac系统安装Lua

    1.下载最新版的lua-5.2.3 请点击,然后解压 2. 运行“终端”进入到该文件夹下,主要是cd [文件夹名] 3.在“终端”输入    make macosx   (回车) 4.在“终端”输入  ...

  4. Java自动创建多层文件目录

    // 创建文件上传路径 public static void mkdir(String path) { File fd = null; try { fd = new File(path); if (! ...

  5. Docker Dockerfile 基本结构详解

    dockerfike快速创建自定义的Docker镜像 一.目录 1.docker典型结构 2.指令介绍 3.创建docker镜像 二.结构 DockerFile分为四部分组成:基础镜像信.维护者信息. ...

  6. iOS增加pch预加载文件

    1.)  打开你的Xcode工程. 在Supporting Files目录下,选择 File > New > File > iOS > Other > PCH File ...

  7. 如何快速找出网页中事件对应的js代码片段

    后端人员也免不了要处理一些前端的事情,由于代码不是自己写的,所以不好找到相关的代码. 比如在表单提交时,前端提交的数据不正确,这时候你可能会想在谷歌浏览器里添加一个鼠标 点击事件的断点. 然而查看js ...

  8. GitHub限制上传单个大于100M的大文件

    工作中遇到这个问题,一些美术资源..unitypackage文件大于100M,Push到GitHub时被拒绝.意思是Push到GitHub的每个文件的大小都要求小于100M. 搜了一下,很多解决办法只 ...

  9. 【Unity】角色受伤后的闪烁(blink/flash)效果

    玩家受伤后,一段时间内快速闪烁.这里想要的闪烁效果是玩家快速的显隐切换效果,而不是玩家变白的情况. 快速切换玩家的显隐效果不能用SetActive修改角色物体本身的激活状态,因为玩家角色身上的其他脚本 ...

  10. Git做代码增量发布的重要用法 - --diff-filter

    你以为有 bash git diff --name-only 就够了,NO! 对于PHP开发的系统来说,增量发布,一般只需部署新增的文件和有变动的文件,但很多时候,文件是删除的或重构成其它文件名或重构 ...