local.sh

Sample local.sh for user-configurable tasks to run automatically at the successful conclusion of stack.sh.

#!/usr/bin/env bash


NOTE: Copy this file to the root devstack directory for it to work properly.


This is a collection of some of the things we have found to be useful to run after stack.sh to tweak the OpenStack configuration that DevStack produces. These should be considered as samples and are unsupported DevStack code.



Keep track of the devstack directory

TOP_DIR=$(cd $(dirname "$0") && pwd)

Import common functions

source $TOP_DIR/functions

Use openrc + stackrc + localrc for settings

source $TOP_DIR/stackrc

Destination path for installation DEST

DEST=${DEST:-/opt/stack}

if is_service_enabled nova; then

Import ssh keys


Import keys from the current user into the default OpenStack user (usually demo)


Get OpenStack user auth

    source $TOP_DIR/openrc

Add first keypair found in localhost:$HOME/.ssh

    for i in $HOME/.ssh/id_rsa.pub $HOME/.ssh/id_dsa.pub; do
        if [[ -r $i ]]; then
            nova keypair-add --pub_key=$i `hostname`
            break
        fi
    done


Create A Flavor


Get OpenStack admin auth

    source $TOP_DIR/openrc admin admin

Name of new flavor set in localrc with DEFAULT_INSTANCE_TYPE=m1.micro

    MI_NAME=m1.micro

Create micro flavor if not present

    if [[ -z $(nova flavor-list | grep $MI_NAME) ]]; then
        nova flavor-create $MI_NAME 6 128 0 1
    fi


Other Uses


Add tcp/22 and icmp to default security group

    nova secgroup-add-rule default tcp 22 22 0.0.0.0/0
    nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0

fi