DevStack部署OpenStack开发环境 - 问题总结
阅读原文时间:2020年10月15日阅读:1

建议在使用DevStack搭建OpenStack开发环境前,先安装好开发工具包组.特别是gcc,
主要一定是在yum update -y 之前,否则更新完系统后,在安装开发工具包会出现很多依赖包
因为版本更新而无法安装.

  要部署OpenStack需要注意若电脑配置不高,我自己的经验是先最小化或基本Web安装,
然后,再安装包组 "fonts", "input", "X Window"相关的部分的软件集.这样可以尽量少装
一些服务,当然,也可以装好后,关闭一些不必要的服务.这样做可避免一些因为主机内存不足或性能
问题出现的OpenStack服务启动错误。

安装DevStack前需要安装的包:
    yum install -y  git  screen  openstack-utils  openstack-selinux
    
    另外需要注意:
        1.devstack部署OpenStack时,需要先执行"tools/create-stack-user.sh", 来创建stack用户,并创建sudo执行权限.
        2.需要注意,devStack似乎不能在/var/log/下创建目录,若出现这个错误,可手动创建以下服务的log目录:
          keystone/glance/nova/neutron/horizon/cinder/manila/ceilometer/heat/rabbitmq/chrony
          这些目录的属主和属组都必须是:stack
        3.若DevStack安装出错时,特别需要注意:
            1> 使用 screen -ls 查看下是否有screen启动的其它虚拟终端,若有,使用screen -r 234234,
               234234指screen启动的虚拟终端标识.此命令是恢复该终端,这样你就可以使用exit持续退出所有的虚拟终端.
            2> 使用 losetup -a 查看cinder是否将loop设备关联到虚拟磁盘文件上了。若有,可使用losetup -D 删除所有关联的loop设备.

下面是安装DevStack时出现错误后,的一些解决方法:

错误一:
    build/temp.linux-x86_64-2.7/_openssl.c:431:25: fatal error: openssl/aes.h: No such file or directory
    #测试系统为:CentOS7.2-1511,做个升级,因此glibc-common-版比较高,导致安装openssl-devel时出错,
    #    不能使用yum直接安装,因此我采用rpm 强制将CentOS7.2光盘上低版本的openssl-devel和openssl-libs装上才解决此问题的.
    解决方法:
    rpm -ivh --nodeps --force openssl-devel openssl-libs

错误二:
    /usr/include/krb5/krb5.h:8193:24: fatal error: et/com_err.h: No such file or directory
    解决方法:
    yum install e2fsprogs-devel e2fsprogs-libs  zlib-devel

错误三:
    src/lxml/includes/etree_defs.h:14:31: fatal error: libxml/xmlversion.h: No such file or directory
    #这样可以把libxml2-devel 的依赖包都下载下来,但还是会因为多版本库的问题导致安装失败。
    #我是直接把下载下来的包强制安装上的。
    解决方法:
    yum install libxml2-devel --setopt=protected_multilib=false
  ln  -sf  /usr/include/libxml2/libxml/   /usr/include/libxml

错误四:
    Error: pg_config executable not found.
    解决方法:
    yum install libpqxx-devel python-devel

错误五:
    ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111 "Connection refused")
    解决方法:
    查看MySQL启动的监听的端口,发现它只在管理接口上监听,原因是,先前安装OpenStack时,
    在/etc/mysql.d/openstack.cnf 中添加了"bind_address=192.168.10.10"

下面是安装eclipse时出现的错误:
    Python+Eclipse+Pydev 来搭建OpenStack开发环境

  首先开发环境部署需要注意:
    1. Python版本 和 Pydev的版本要对应,否则Pydev安装完成后,会出现Eclipse无法识别Pydev的情况。
    注:
     最初我的Python版本:2.7.5, 直接使用Eclipse-->Help-->Install New Software..

      

    使用http://pydev.org/updates 安装时,这里只能显示最新的版本,安装后,Eclipse无法识别Pydev.
   网上有说可以升级JDK到最新版本来解决, 或 使用与当前Python版本一致的Pydev 来解决。
   这篇网文可参看: http://www.linuxidc.com/Linux/2015-02/113883.htm

  这里我选择手动下载与Python版本一致的Pydev来解决:
    http://jaist.dl.sourceforge.net/project/pydev/pydev/PyDev 2.7.5/PyDev 2.7.5.zip
  下载好后, 可直接解压到eclipse安装根目录下即可:
  unzip PyDev2.7.5.zip -d eclipse/

  另注: 若先前安装了最新版的PyDev5.2.0,则需要先在:
    Eclipse-->Help-->Installation Details-->找到最新的PyDev然后卸载后,就可以看Pydev2.7.5了。

 2. 配置Pydev使用的正确的Python解释器:
  Eclipese-->Window-> Preferences-->Pydev-->Interpreter - Python -->Auto Config即可.