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:

Devstack single node Installation on VM_第1张图片

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.

Devstack single node Installation on VM_第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

Devstack single node Installation on VM_第3张图片

你可能感兴趣的:(Install)