training-guides/labs/scripts/setup_cinder_volumes.sh
Pranav Salunke 8521801016 Moves cinder tests to cidner_volues script
As the installation of cinder volumes section is separated to another
node (compute node for now) which may not be the same node as the
node running controller side of cinder's services, the tests should
also be moved to the appropriate location.

Change-Id: I2c2e6e64807e026783881197d62243b4751f7f41
2014-09-15 15:32:25 +02:00

104 lines
3.2 KiB
Bash
Executable File

#!/usr/bin/env bash
TOP_DIR=$(cd $(dirname "$0")/.. && pwd)
source "$TOP_DIR/config/paths"
source "$CONFIG_DIR/credentials"
source "$CONFIG_DIR/openstack"
source "$LIB_DIR/functions.guest"
source "$CONFIG_DIR/admin-openstackrc.sh"
exec_logfile
indicate_current_auto
#------------------------------------------------------------------------------
# Set up Block Storage service (cinder).
#------------------------------------------------------------------------------
echo "Installing cinder."
sudo apt-get install -y lvm2
echo "Configuring LVM physical and logical volumes."
cinder_loop_path=/var/lib/cinder-volumes
cinder_loop_dev=/dev/loop2
sudo dd if=/dev/zero of=$cinder_loop_path bs=1 count=0 seek=4G
sudo losetup $cinder_loop_dev $cinder_loop_path
sudo pvcreate $cinder_loop_dev
sudo vgcreate cinder-volumes $cinder_loop_dev
# Tell upstart to run losetup again when the system is rebooted
cat << UPSTART | sudo tee "/etc/init/cinder-losetup.conf"
description "Set up loop device for cinder."
start on mounted MOUNTPOINT=/
task
exec /sbin/losetup $cinder_loop_dev $cinder_loop_path
UPSTART
sudo apt-get install -y cinder-volume
function get_database_url {
local db_user=$(service_to_db_user cinder)
local db_password=$(service_to_db_password cinder)
local database_host=controller-mgmt
echo "mysql://$db_user:$db_password@$database_host/cinder"
}
database_url=$(get_database_url)
echo "Configuring cinder."
echo "Setting database connection: $database_url."
iniset_sudo /etc/cinder/cinder.conf database connection "$database_url"
cinder_admin_user=$(service_to_user_name cinder)
cinder_admin_password=$(service_to_user_password cinder)
echo "Configuring cinder to use keystone for authentication."
conf=/etc/cinder/cinder.conf
echo "Configuring $conf."
# Configure [keystone_authtoken] section.
iniset_sudo $conf keystone_authtoken auth_uri "http://controller-mgmt:5000"
iniset_sudo $conf keystone_authtoken auth_host controller-mgmt
iniset_sudo $conf keystone_authtoken auth_port 35357
iniset_sudo $conf keystone_authtoken auth_protocol http
iniset_sudo $conf keystone_authtoken admin_tenant_name "$SERVICE_TENANT_NAME"
iniset_sudo $conf keystone_authtoken admin_user "$cinder_admin_user"
iniset_sudo $conf keystone_authtoken admin_password "$cinder_admin_password"
# Configure [DEFAULT] section.
iniset_sudo $conf DEFAULT rpc_backend cinder.openstack.common.rpc.impl_kombu
iniset_sudo $conf DEFAULT rabbit_host controller-mgmt
iniset_sudo $conf DEFAULT rabbit_port 5672
iniset_sudo $conf DEFAULT rabbit_userid guest
iniset_sudo $conf DEFAULT rabbit_password "$RABBIT_PASSWORD"
iniset_sudo $conf DEFAULT glance_host controller-mgmt
echo "Restarting cinder service."
sudo service cinder-volume restart
sudo service tgt restart
#------------------------------------------------------------------------------
# Verify the Block Storage installation
#------------------------------------------------------------------------------
echo "Waiting for cinder to start."
until cinder list >/dev/null 2>&1; do
sleep 1
done
echo "cinder create --display-name labsVolume 1"
cinder create --display-name labsVolume 1
echo "cinder list"
cinder list
echo "cinder delete labsVolume"
cinder delete labsVolume
echo "cinder list"
cinder list