zoukankan      html  css  js  c++  java
  • Devstack single node Installation on VM

    Last three days, I want to install devstack on my virtual machine on Vmware Workstation.The VM'system is Ubuntu14.04. However,i met too many problem to install it successfully.When i cannot see the hope, i had to borrow a America VM from my workmate.This vm's system is also Ubuntu14.04.To my surprise, the same operation steps, this America vm installed successfully.Here is a picture which shows eventual installation:

    Now,let me show my installation steps(thanks to SongPeng who is one of my emc workmate)

    official documentation is here

    1.update your system

    $sudo apt-get update

    2.reboot:make it work

    3.install your git

    $sudo apt-get install git

    4.download devstack source code

    $cd /usr/local/
    
    $sudo git clone https://git.openstack.org/openstack-dev/devstack

    5.in order to avoid permisstion denied, you can use create-stack-user.sh to create a user named stack and a group also named stack

    $sudo /usr/local/devstack/tools/create-stack-user.sh
    
    $sudo chown -R stack:stack /usr/local/devstack/

    6.access stack

    $sudo su stack

    7.under the stack,you create a configuration file named 'localrc',there is the simplest configuration below,the official documentation is here:

    stack@ubuntu:/usr/local/devstack$ vim localrc
    
    ADMIN_PASSWORD=secrete
    DATABASE_PASSWORD=$ADMIN_PASSWORD
    RABBIT_PASSWORD=$ADMIN_PASSWORD
    SERVICE_PASSWORD=$ADMIN_PASSWORD
    SERVICE_TOKEN=$ADMIN_PASSWORD
    #solve ‘fatal: unable to connect to git.openstack.org’
    GIT_BASE=${GIT_BASE:-https://git.openstack.org}
    
    DEBUG=True
    VERBOSE=True
    DEST=/opt/stack
    LOGFILE=$DEST/logs/stack.sh.log
    SCREEN_LOGDIR=$DEST/logs/screen
    
    SYSLOG=False
    LOG_COLOR=False
    LOGDAYS=7

    8.start to install(notice that under the stack)

    stack@ubuntu:/usr/local/devstack$ ./stack.sh

    Till now,above is installation steps.Below are problems which i met and solutions.

    grep -ir 'error|fail|usage|not found' /opt/stack/logs/stack.sh.log
    grep -ir 'error|fail|usage|not found' /opt/stack/logs/screen/

    A useful tip: when you see "error", scroll the log up until you find the root one.

    Download dependency failed

    Symptom:

    1.

    2.

     Cause:Network is not stable

     Solution:manual download relative dependency by yourself and install it

    $cd /tmp/
    $wget  https://pypi.python.org/packages/source/B/Bable-1.3.tar.gz
    #verify md5 consistancy
    $md5sum Bable-1.3.tar.gz 
    $sudo pip install
    --upgrade Bable-1.3.tar.gz

    Module version does not exist!

    Symptom

    :./stack.sh:68+sudo a2enmod version
    ERROR: Module version does not exist!
    

    The code location is in lib/apache:68. See the comment

    Ensure mod_version enabled for . This is built-in statically on anything recent, but precise (2.2) doesn't have it enabled

    So, feel free to ignore this error.

    openstack role list raises unrecognized arguments: --group(thanks to Accelazh)

    Symptom

    ::./stack.sh:780+openstack role list --group 3c65c1a8d12f40a2a9949d5b2922beae --project 18ab3a46314442b183db43bc13b175b4 --column ID --column Name
    usage: openstack role list [-h] [-f {csv,html,json,table,yaml}] [-c COLUMN]
                               [--max-width <integer>]
                               [--quote {all,minimal,none,nonnumeric}]
                               [--project <project>] [--user <user>]
    openstack role list: error: unrecognized arguments: --group 3c65c1a8d12f40a2a9949d5b2922beae

    Code location at lib/keystone:418, invoked by functions-common:773.

    The first reason is that the python-openstackclient version is too old (openstack --version), upgrade it

    sudo pip install --upgrade python-openstackclient

    You need to add python-openstackclient to LIBS_FROM_GIT in local.conf, to make sure devstack uses the newest version of python-openstackclient. Note that, devstack will use master branch of python-openstackclient instead of stable/kilo.

    # Add python-openstackclient to your LIBS_FROM_GIT
    LIBS_FROM_GIT=python-openstackclient

    The next step, since keystone v2.0 doesn't even have the concept "group", you need to force here to use keystone V3 api.

    $ git diff
    diff --git a/functions-common b/functions-common
    index d3e93ed..bd55d7e 100644
    --- a/functions-common
    +++ b/functions-common
    @@ -773,12 +773,15 @@ function get_or_add_user_project_role {
     # Gets or adds group role to project
     # Usage: get_or_add_group_project_role <role> <group> <project>
     function get_or_add_group_project_role {
    +    local os_url="$KEYSTONE_SERVICE_URI_V3"
         # Gets group role id
         local group_role_id=$(openstack role list 
             --group $2 
             --project $3 
             --column "ID" 
             --column "Name" 
    +        --os-identity-api-version=3 
    +        --os-url=$os_url 
             | grep " $1 " | get_field 1)
         if [[ -z "$group_role_id" ]]; then
             # Adds role to group
    @@ -786,6 +789,8 @@ function get_or_add_group_project_role {
                 $1 
                 --group $2 
                 --project $3 
    +            --os-identity-api-version=3 
    +            --os-url=$os_url 
                 | grep " id " | get_field 2)
         fi
         echo $group_role_id

    Related devstack bug: #1441010

    InsecurePlatformWarning

    cause:your Python version is too old

    solution:upgrade to a newer Python version.

    $sudo pip install --upgrade Python 

    The eventual happy Running portal:

    username:admin  secret:secrete

  • 相关阅读:
    [zz] 从VMM中终止GUEST OS中运行进程
    [zz]Linux流量监控工具 – iftop (最全面的iftop教程)
    [zz]Ubuntu终端下Nethogs网络流量监控工具
    AtomicBoolean运用
    JDK中的URLConnection参数详解
    java读取文本文件数据
    tomcat时区设置
    java的upload
    java复习(set 、list、map)
    NIO学习笔记1
  • 原文地址:https://www.cnblogs.com/zbhdsfdx-2015/p/4549430.html
Copyright © 2011-2022 走看看