New devstack scripts added
This commit is contained in:
parent
7f5f8bcc9f
commit
998b210043
27
Deployment/devstack-scripts/devstack.localrc
Normal file
27
Deployment/devstack-scripts/devstack.localrc
Normal file
@ -0,0 +1,27 @@
|
||||
lab_id=101
|
||||
lab_password=swordfish
|
||||
|
||||
HOST_IP=172.18.124.${lab_id}
|
||||
#PUBLIC_INTERFACE=eth1
|
||||
|
||||
FIXED_RANGE=10.0.${lab_id}.0/24
|
||||
NETWORK_GATEWAY=10.0.${lab_id}.1
|
||||
|
||||
#PUBLIC_INTERFACE=eth0
|
||||
FLAT_INTERFACE=eth1
|
||||
|
||||
ADMIN_PASSWORD=$lab_password
|
||||
MYSQL_PASSWORD=$lab_password
|
||||
RABBIT_PASSWORD=$lab_password
|
||||
SERVICE_PASSWORD=$lab_password
|
||||
SERVICE_TOKEN=tokentoken
|
||||
ENABLED_SERVICES+=,heat,h-api,h-api-cfn,h-api-cw,h-eng
|
||||
|
||||
LOGFILE=/opt/stack/devstack/stack.sh.log
|
||||
SCREEN_LOGDIR=/opt/stack/log/
|
||||
#SCREEN_LOGDIR=/dev/null
|
||||
|
||||
API_RATE_LIMIT=False
|
||||
|
||||
EXTRA_OPTS=(force_config_drive=true libvirt_images_type=qcow2 force_raw_images=false)
|
||||
|
75
Deployment/devstack-scripts/functions.sh
Normal file
75
Deployment/devstack-scripts/functions.sh
Normal file
@ -0,0 +1,75 @@
|
||||
#!/bin/bash
|
||||
|
||||
|
||||
|
||||
# Test if the named environment variable is set and not zero length
|
||||
# is_set env-var
|
||||
#function is_set() {
|
||||
# local var=\$"$1"
|
||||
# eval "[ -n \"$var\" ]" # For ex.: sh -c "[ -n \"$var\" ]" would be better, but several exercises depends on this
|
||||
#}
|
||||
|
||||
|
||||
|
||||
# Prints "message" and exits
|
||||
# die "message"
|
||||
#function die() {
|
||||
# local exitcode=$?
|
||||
# if [ $exitcode == 0 ]; then
|
||||
# exitcode=1
|
||||
# fi
|
||||
# set +o xtrace
|
||||
# local msg="[ERROR] $0:$1 $2"
|
||||
# echo $msg 1>&2;
|
||||
# if [[ -n ${SCREEN_LOGDIR} ]]; then
|
||||
# echo $msg >> "${SCREEN_LOGDIR}/error.log"
|
||||
# fi
|
||||
# exit $exitcode
|
||||
#}
|
||||
|
||||
|
||||
|
||||
# Checks an environment variable is not set or has length 0 OR if the
|
||||
# exit code is non-zero and prints "message" and exits
|
||||
# NOTE: env-var is the variable name without a '$'
|
||||
# die_if_not_set env-var "message"
|
||||
function die_if_not_set() {
|
||||
local exitcode=$?
|
||||
set +o xtrace
|
||||
local evar=$1; shift
|
||||
if ! is_set $evar || [ $exitcode != 0 ]; then
|
||||
if [[ -z "$1" ]] ; then
|
||||
die "Env var '$evar' is not set!"
|
||||
else
|
||||
die $@
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
|
||||
function restart_service {
|
||||
while [[ -n "$1" ]] ; do
|
||||
echo "Restarting service '$1' ..."
|
||||
sudo service $1 restart
|
||||
shift 1
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
|
||||
# Normalize config values to True or False
|
||||
# Accepts as False: 0 no false False FALSE
|
||||
# Accepts as True: 1 yes true True TRUE
|
||||
# VAR=$(trueorfalse default-value test-value)
|
||||
#function trueorfalse() {
|
||||
# local default=$1
|
||||
# local testval=$2
|
||||
#
|
||||
# [[ -z "$testval" ]] && { echo "$default"; return; }
|
||||
# [[ "0 no false False FALSE" =~ "$testval" ]] && { echo "False"; return; }
|
||||
# [[ "1 yes true True TRUE" =~ "$testval" ]] && { echo "True"; return; }
|
||||
# echo "$default"
|
||||
#}
|
||||
|
||||
|
15
Deployment/devstack-scripts/localrc
Normal file
15
Deployment/devstack-scripts/localrc
Normal file
@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
|
||||
DEVSTACK_DIR=/home/stack/devstack
|
||||
|
||||
MYSQL_DB_TMPFS=true
|
||||
MYSQL_DB_TMPFS_SIZE=128M
|
||||
|
||||
NOVA_CACHE_TMPFS=true
|
||||
NOVA_CACHE_TMPFS_SIZE=24G
|
||||
|
||||
|
||||
#======================================
|
||||
source $DEVSTACK_DIR/openrc admin admin
|
||||
source ./functions.sh
|
||||
|
72
Deployment/devstack-scripts/post-stack.sh
Normal file
72
Deployment/devstack-scripts/post-stack.sh
Normal file
@ -0,0 +1,72 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ -z "$1" ] ; then
|
||||
source ./localrc
|
||||
fi
|
||||
|
||||
|
||||
function glance_image_create {
|
||||
local __image_name=$1
|
||||
|
||||
if [[ -z "$__image_name" ]] ; then
|
||||
echo "No image name provided!"
|
||||
return
|
||||
fi
|
||||
|
||||
echo "Importing image '$__image_name' into Glance..."
|
||||
glance image-delete "$__image_name"
|
||||
glance image-create \
|
||||
--name "$__image_name" \
|
||||
--disk-format qcow2 \
|
||||
--container-format bare \
|
||||
--is-public true \
|
||||
--copy-from "http://172.18.124.100:8888/$__image_name.qcow2"
|
||||
}
|
||||
|
||||
|
||||
# Executing post-stack actions
|
||||
#===============================================================================
|
||||
|
||||
if [ -z "$(sudo rabbitmqctl list_users | grep keero)" ] ; then
|
||||
echo "Adding RabbitMQ 'keero' user"
|
||||
sudo rabbitmqctl add_user keero keero
|
||||
else
|
||||
echo "User 'Keero' already exists."
|
||||
fi
|
||||
|
||||
|
||||
if [ -z "$(sudo rabbitmq-plugins list -e | grep rabbitmq_management)" ] ; then
|
||||
echo "Enabling RabbitMQ management plugin"
|
||||
sudo rabbitmq-plugins enable rabbitmq_management
|
||||
else
|
||||
echo "RabbitMQ management plugin already enabled."
|
||||
fi
|
||||
|
||||
|
||||
echo "Restarting RabbitMQ ..."
|
||||
restart_service rabbitmq-server
|
||||
|
||||
|
||||
echo "* Removing nova flavors ..."
|
||||
for id in $(nova flavor-list | awk '$2 ~ /[[:digit:]]/ {print $2}') ; do
|
||||
echo "** Removing flavor '$id'"
|
||||
nova flavor-delete $id
|
||||
done
|
||||
|
||||
|
||||
echo "* Creating new flavors ..."
|
||||
nova flavor-create m1.small auto 1024 40 1
|
||||
nova flavor-create m1.medium auto 2048 40 2
|
||||
nova flavor-create m1.large auto 4096 40 4
|
||||
|
||||
|
||||
if [ -z "$(nova keypair-list | grep keero_key)" ] ; then
|
||||
echo "Creating keypair 'keero_key' ..."
|
||||
nova keypair-add keero_key
|
||||
else
|
||||
echo "Keypair 'keero_key' already exists"
|
||||
fi
|
||||
|
||||
#===============================================================================
|
||||
|
||||
glance_image_create "ws-2012-full"
|
25
Deployment/devstack-scripts/post-unstack.sh
Normal file
25
Deployment/devstack-scripts/post-unstack.sh
Normal file
@ -0,0 +1,25 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [[ -z "$1" ]] ; then
|
||||
source ./localrc
|
||||
fi
|
||||
|
||||
|
||||
#Remove certificates
|
||||
echo "* Removing old certificate files"
|
||||
for file in $(sudo find $DEVSTACK_DIR/accrc/ -type f -regex ".+.pem.*") ; do
|
||||
echo "Removing file '$file'"
|
||||
sudo rm -f "$file"
|
||||
done
|
||||
|
||||
# Remove logs
|
||||
echo Removing 'devstack' logs
|
||||
sudo rm -f /var/log/devstack/*
|
||||
#sudo rm -f /opt/stack/devstack/stack.sh.log
|
||||
|
||||
echo "* Removing 'apache2' logs"
|
||||
for file in $(sudo find /var/log/apache2 -type f) ; do
|
||||
echo "Removing file '$file'"
|
||||
sudo rm -f "$file"
|
||||
done
|
||||
|
99
Deployment/devstack-scripts/pre-stack.sh
Normal file
99
Deployment/devstack-scripts/pre-stack.sh
Normal file
@ -0,0 +1,99 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ -z "$1" ] ; then
|
||||
source ./localrc
|
||||
fi
|
||||
|
||||
|
||||
# Executing pre-stack actions
|
||||
#===============================================================================
|
||||
|
||||
# Executing checks
|
||||
#-----------------
|
||||
die_if_not_set DEVSTACK_DIR
|
||||
die_if_not_set MYSQL_DB_TMPFS_SIZE
|
||||
die_if_not_set NOVA_CACHE_TMPFS_SIZE
|
||||
#-----------------
|
||||
|
||||
|
||||
restart_service dbus rabbitmq-server
|
||||
|
||||
|
||||
# Moving MySQL database to tmpfs
|
||||
#-------------------------------
|
||||
if [[ $(trueorfalse True $MYSQL_DB_TMPFS) = "True" ]] ; then
|
||||
die_if_not_set MYSQL_DB_TMPFS_SIZE
|
||||
mount_dir=/var/lib/mysql
|
||||
sudo -s << EOF
|
||||
echo "Stopping MySQL Server"
|
||||
service mysql stop
|
||||
|
||||
umount $mount_dir
|
||||
mount -t tmpfs -o size=$MYSQL_DB_TMPFS_SIZE tmpfs $mount_dir
|
||||
chmod 700 $mount_dir
|
||||
chown mysql:mysql $mount_dir
|
||||
|
||||
mysql_install_db
|
||||
|
||||
/usr/bin/mysqld_safe --skip-grant-tables &
|
||||
sleep 5
|
||||
EOF
|
||||
|
||||
sudo mysql << EOF
|
||||
FLUSH PRIVILEGES;
|
||||
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('swordfish');
|
||||
SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD('swordfish');
|
||||
EOF
|
||||
|
||||
sudo -s << EOF
|
||||
killall mysqld
|
||||
sleep 5
|
||||
|
||||
echo "Starting MySQL Server"
|
||||
service mysql start
|
||||
EOF
|
||||
else
|
||||
echo "MYSQL_DB_TMPFS = '$MYSQL_DB_TMPFS'"
|
||||
fi
|
||||
#-------------------------------
|
||||
|
||||
|
||||
# Devstack log folder
|
||||
#--------------------
|
||||
sudo -s << EOF
|
||||
mkdir -p $SCREEN_LOGDIR
|
||||
chown stack:stack $SCREEN_LOGDIR
|
||||
EOF
|
||||
#--------------------
|
||||
|
||||
|
||||
# Moving nova images cache to tmpfs
|
||||
#----------------------------------
|
||||
if [[ $(trueorfalse True $NOVA_CACHE_TMPFS) = "True" ]] ; then
|
||||
die_if_not_set NOVA_CACHE_TMPFS_SIZE
|
||||
mount_dir=/opt/stack/data/nova/instances
|
||||
sudo -s << EOF
|
||||
umount $mount_dir
|
||||
mount -t tmpfs -o size=$NOVA_CACHE_TMPFS_SIZE tmpfs $mount_dir
|
||||
chmod 775 $mount_dir
|
||||
chown stack:stack $mount_dir
|
||||
EOF
|
||||
else
|
||||
echo "NOVA_CACHE_TMPFS = '$NOVA_CACHE_TMPFS'"
|
||||
fi
|
||||
|
||||
#----------------------------------
|
||||
|
||||
|
||||
# Replacing devstack's localrc config
|
||||
#------------------------------------
|
||||
if [[ -f "devstack.localrc" ]] ; then
|
||||
rm -f "$DEVSTACK_DIR/localrc"
|
||||
cp devstack.localrc "$DEVSTACK_DIR/localrc"
|
||||
else
|
||||
echo "File 'devstack.localrc' not found!"
|
||||
fi
|
||||
#------------------------------------
|
||||
|
||||
#===============================================================================
|
||||
|
6
Deployment/devstack-scripts/pre-unstack.sh
Normal file
6
Deployment/devstack-scripts/pre-unstack.sh
Normal file
@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [[ -z "$1" ]] ; then
|
||||
source ./localrc
|
||||
fi
|
||||
|
25
Deployment/devstack-scripts/start-devstack.sh
Normal file
25
Deployment/devstack-scripts/start-devstack.sh
Normal file
@ -0,0 +1,25 @@
|
||||
#!/bin/bash
|
||||
|
||||
source ./localrc
|
||||
|
||||
|
||||
# Executing pre-stack actions
|
||||
#===============================================================================
|
||||
source ./pre-stack.sh no-localrc
|
||||
#===============================================================================
|
||||
|
||||
|
||||
|
||||
# Creating stack
|
||||
#===============================================================================
|
||||
$DEVSTACK_DIR/stack.sh
|
||||
#===============================================================================
|
||||
|
||||
|
||||
|
||||
# Executing post-stack actions
|
||||
#===============================================================================
|
||||
source ./post-stack.sh no-localrc
|
||||
#===============================================================================
|
||||
|
||||
|
22
Deployment/devstack-scripts/start-vm.sh
Normal file
22
Deployment/devstack-scripts/start-vm.sh
Normal file
@ -0,0 +1,22 @@
|
||||
#!/bin/bash
|
||||
|
||||
image_file=$1
|
||||
|
||||
function die {
|
||||
echo "$@"
|
||||
exit 1
|
||||
}
|
||||
|
||||
[ -z "$image_file" ] && die "VM name MUST be provided!"
|
||||
[ -f "$image_file" ] || die "File '$image_file' not found."
|
||||
|
||||
echo "Starting VM '$image_file' ..."
|
||||
|
||||
kvm \
|
||||
-m 2048 \
|
||||
-drive file="$image_file",if=virtio \
|
||||
-redir tcp:3389::3389 -redir tcp:3390::3390 \
|
||||
-nographic \
|
||||
-usbdevice tablet \
|
||||
-vnc :20
|
||||
|
22
Deployment/devstack-scripts/stop-devstack.sh
Normal file
22
Deployment/devstack-scripts/stop-devstack.sh
Normal file
@ -0,0 +1,22 @@
|
||||
#!/bin/bash
|
||||
|
||||
source ./localrc
|
||||
|
||||
|
||||
# Executing pre-unstack actions
|
||||
#===============================================================================
|
||||
source ./pre-unstack.sh no-localrc
|
||||
#===============================================================================
|
||||
|
||||
|
||||
# Executing unstack.sh
|
||||
#===============================================================================
|
||||
$DEVSTACK_DIR/unstack.sh
|
||||
#===============================================================================
|
||||
|
||||
|
||||
# Executing post-unstack actions
|
||||
#===============================================================================
|
||||
source ./post-unstack.sh no-localrc
|
||||
#===============================================================================
|
||||
|
Loading…
x
Reference in New Issue
Block a user