• Ubuntu 14.04 安装 DevStack与遇到的的问题记录


      本文总结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 777 /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.1

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

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

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

  • 相关阅读:
    iptables详解
    Linux文件结构及基本文件夹
    linux的一些常用命令
    Sql Server REPLACE函数的使用
    MSSQL复制表操作
    MSSQL2005数据库显示单一用户模式,无法进行任何操作
    linux下查看所有用户及所有用户组
    SpringMVC基础-10-拦截器
    SpringMVC基础-09-文件上传(单文件、多文件上传)
    SpringMVC基础-08-数据转换 & 数据格式化 & 数据校验
  • 原文地址:https://www.cnblogs.com/Security-Darren/p/3937104.html
走看看 - 开发者的网上家园