zoukankan      html  css  js  c++  java
  • 体验devstack安装openstack

    由于公司制度,工作环境是不能直接上网的,所以在工作时间从没有体验过devstack或者其他联网方式安装openstack。

    因自己购置了一台不错的主机,因而决定尝试安装一番,经过一段为期不短的内心极度崩溃与愈合,终于看到了如下的打印:

    15 This is your host IP address: 192.168.0.105
    16 This is your host IPv6 address: ::1
    17 Horizon is now available at http://192.168.0.105/dashboard
    18 Keystone is serving at http://192.168.0.105:5000/
    19 The default users are: admin and demo
    20 The password: 123456
    21 2017-01-21 08:46:05.167 | stack.sh completed in 746 seconds.

    喔喔,这是成功了吗,可以登录了。

    好了,还是言归正传:

    工作环境:vmware 12

    操作系统:ubuntu 14.04.5

    虚拟机配置 内存: 4G , CPU : 4核 ,开启VTx-d等选项,内存是越大越好,不过俺的主机内存有限。

    安装完后:

    root@ubuntu:~# free -h
                 total       used       free     shared    buffers     cached
    Mem:          3.8G       3.7G       151M       3.2M       100M       1.1G
    -/+ buffers/cache:       2.5G       1.3G
    Swap:         1.0G       744K       1.0G

    apt源可以使用国内的默认源,也可以使用其他国内的源,不过博主居然遇到cn.archive.ubuntu.com当机了。。。

    因此测试了一下阿里的源,貌似比较稳定,于是:

    sed -i "s/cn.archive.ubuntu.com/mirrors.aliyun.com/g" /etc/apt/sources.list
    apt-get update

    pip的设置(首先创建目录: mkdir ~/.pip  && vim ~/.pip/pip.conf):

    1 stack@ubuntu:~/devstack$ cat ~/.pip/pip.conf
    2 [global]  
    3 index-url = http://mirrors.aliyun.com/pypi/simple/  
    4 [install]  
    5 trusted-host=mirrors.aliyun.com

    devstack本地配置:

     1 stack@ubuntu:~/devstack$ cat local.conf
     2 [[local|localrc]]
     3 
     4 # use TryStack git mirror
     5 GIT_BASE=http://git.trystack.cn
     6 NOVNC_REPO=http://git.trystack.cn/kanaka/noVNC.git
     7 SPICE_REPO=http://git.trystack.cn/git/spice/spice-html5.git
     8 
     9 #OFFLINE=True
    10 RECLONE=True
    11 
    12 # Define images to be automatically downloaded during the DevStack built process.
    13 DOWNLOAD_DEFAULT_IMAGES=False
    14 IMAGE_URLS="http://images.trystack.cn/cirros/cirros-0.3.4-x86_64-disk.img"
    15 
    16 ADMIN_PASSWORD=123456
    17 DATABASE_PASSWORD=$ADMIN_PASSWORD
    18 RABBIT_PASSWORD=$ADMIN_PASSWORD
    19 SERVICE_PASSWORD=$ADMIN_PASSWORD


    我一开始使用默认的国外源,是想安装newton版本,不过那个网速真的没法成功安装。。

    使用国内的源会快很多,但是好像只支持mitaka版本,因此就先安装这个,接下来就是:

    1、创建一个普通用户,比如官网推荐的 stack

    1 sudo adduser stack
    2 
    3 sudo echo "stack ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers

    2、切换到stack用户(执行su stack),然后:

    1 cd ~
    2 sudo apt-get install git 
    3 git clone https://github.com/openstack-dev/devstack.git -b stable/mitaka

    3、开始安装:

    1 cd devstack
    2 ./stack.sh

    4、中途遇到的问题:

     1 Traceback (most recent call last):
     2   File "/usr/local/bin/openstack", line 7, in <module>
     3     from openstackclient.shell import main
     4   File "/usr/local/lib/python2.7/dist-packages/openstackclient/shell.py", line 32, in <module>
     5     from openstackclient.common import clientmanager
     6   File "/usr/local/lib/python2.7/dist-packages/openstackclient/common/clientmanager.py", line 293, in <module>
     7     'openstack.cli.base',
     8   File "/usr/local/lib/python2.7/dist-packages/openstackclient/common/clientmanager.py", line 264, in get_plugin_modules
     9     __import__(ep.module_name)
    10   File "/usr/local/lib/python2.7/dist-packages/openstackclient/network/client.py", line 16, in <module>
    11     from openstack import connection
    12   File "/usr/local/lib/python2.7/dist-packages/openstack/connection.py", line 68, in <module>
    13     from openstack import session as _session
    14   File "/usr/local/lib/python2.7/dist-packages/openstack/session.py", line 29, in <module>
    15     DEFAULT_USER_AGENT = "openstacksdk/%s" % openstack.__version__
    16 AttributeError: 'module' object has no attribute '__version__

    好吧,发现是/usr/local/lib/python2.7/dist-packages/openstack/session.py里执行失败:

    代码行: DEFAULT_USER_AGENT = "openstacksdk/%s" % openstack.__version__

    于是如下处理一下:

     1 root@ubuntu:~# python
     2 Python 2.7.6 (default, Oct 26 2016, 20:30:19) 
     3 [GCC 4.8.4] on linux2
     4 Type "help", "copyright", "credits" or "license" for more information.
     5 >>> import openstack
     6 >>> import pbr.version
     7 >>> print(pbr.version.VersionInfo('openstacksdk').version_string())
     8 0.8.1
     9 >>> quit()
    10 root@ubuntu:~# 

    修改为: DEFAULT_USER_AGENT = "openstacksdk/0.8.1"

    cd ~/devstack
    ./unstack.sh
    ./clean.sh
    ./stack.sh

    好运的话,会一次安装成功吧。

    然而博主是经历了断断续续历时约12个小时失败才安装成功。。。

    5、如何重启devstack

    devstack重启脚本是rejoin-stack.sh,但是git下来的版本却没有,只好去网上找一个,如下:

    #!/usr/bin/env bash
    
    # This script rejoins an existing screen, or re-creates a
    # screen session from a previous run of stack.sh.
    
    TOP_DIR=`dirname $0`
    
    # Import common functions in case the localrc (loaded via stackrc)
    # uses them.
    source $TOP_DIR/functions
    
    source $TOP_DIR/stackrc
    
    # if screenrc exists, run screen
    if [[ -e $TOP_DIR/stack-screenrc ]]; then
        if screen -ls | egrep -q "[0-9].stack"; then
            echo "Attaching to already started screen session.."
            exec screen -r stack
        fi
        exec screen -c $TOP_DIR/stack-screenrc
    fi
    
    echo "Couldn't find $TOP_DIR/stack-screenrc file; have you run stack.sh yet?"
    exit 1

    vim ~/devstack/rejoin-stack.sh将上面的内容复制进去。

    chmod +x ~/devstack/rejoin-stack.sh
    sudo chmod 777 /dev/pts/0
    ./rejoin-stack.sh

    即可重启服务咯,哈哈,我赶紧把内存加大1G~~~

    root@ubuntu:~# free -h
                 total       used       free     shared    buffers     cached
    Mem:          4.8G       3.0G       1.7G       3.4M        62M       230M
    -/+ buffers/cache:       2.7G       2.0G
    Swap:         1.0G         0B       1.0G

    接下来,就可以愉快的玩耍了。

    6、如何成为openstack的开发者:

    http://www.ibm.com/developerworks/cn/cloud/library/cl-contributecode-openstack/

  • 相关阅读:
    css位置相关元素
    用smarty模板做的登录
    时间查询插件
    smarty 总结和分析
    手风琴特效
    Mysql 知识点总结
    Javascript实现图片的预加载的完整实现
    phpcms 列表页中调用其下的所有子栏目(或特定的子栏目)的方法
    phpcms v9表单实现问答咨询功能
    Cocos2d-x学习之 整体框架描述
  • 原文地址:https://www.cnblogs.com/danxi/p/6337401.html
Copyright © 2011-2022 走看看