From a841644e988415502831f17d1b34b0ad74d4c2c9 Mon Sep 17 00:00:00 2001 From: Anthony Young Date: Tue, 13 Sep 2011 20:07:44 -0700 Subject: [PATCH] progress on multi-host stack.sh --- files/glance-registry.conf | 2 +- files/keystone.conf | 2 +- stack.sh | 23 ++++++++++++++++------- 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/files/glance-registry.conf b/files/glance-registry.conf index 252702c..ea2cf1d 100644 --- a/files/glance-registry.conf +++ b/files/glance-registry.conf @@ -21,7 +21,7 @@ use_syslog = False # SQLAlchemy connection string for the reference implementation # registry server. Any valid SQLAlchemy connection string is fine. # See: http://www.sqlalchemy.org/docs/05/reference/sqlalchemy/connections.html#sqlalchemy.create_engine -sql_connection = mysql://root:%MYSQL_PASS%@localhost/glance +sql_connection = %SQL_CONN% # Period in seconds after which SQLAlchemy should reestablish its connection # to the database. diff --git a/files/keystone.conf b/files/keystone.conf index 5923c85..622b87d 100644 --- a/files/keystone.conf +++ b/files/keystone.conf @@ -49,7 +49,7 @@ keystone-service-admin-role = KeystoneServiceAdmin # server. Any valid SQLAlchemy connection string is fine. # See: http://bit.ly/ideIpI #sql_connection = sqlite:///keystone.db -sql_connection = mysql://root:%MYSQL_PASS%@localhost/keystone +sql_connection = %SQL_CONN% backend_entities = ['UserRoleAssociation', 'Endpoints', 'Role', 'Tenant', 'User', 'Credentials', 'EndpointTemplates', 'Token', 'Service'] diff --git a/stack.sh b/stack.sh index 30574d0..993cb98 100755 --- a/stack.sh +++ b/stack.sh @@ -35,6 +35,8 @@ KEYSTONE_DIR=$DEST/keystone NOVACLIENT_DIR=$DEST/python-novaclient API_DIR=$DEST/openstackx NOVNC_DIR=$DEST/noVNC + +# Specify which services to launch. These generally correspond to screen tabs ENABLED_SERVICES=g-api,g-reg,key,n-api,n-cpu,n-net,n-sch,n-vnc,dash # Use the first IP unless an explicit is set by ``HOST_IP`` environment variable @@ -47,6 +49,7 @@ INTERFACE=${INTERFACE:-eth0} FLOATING_RANGE=${FLOATING_RANGE:-10.6.0.0/27} FIXED_RANGE=${FIXED_RANGE:-10.0.0.0/24} NET_MAN=${NET_MAN:-VlanManager} +EC2_DMZ_HOST=${EC2_DMZ_HOST:-$HOST_IP} # If you are using FlatDHCP on multiple hosts, set the ``FLAT_INTERFACE`` # variable but make sure that the interface doesn't already have an @@ -56,11 +59,14 @@ NET_MAN=${NET_MAN:-VlanManager} # Nova hypervisor configuration LIBVIRT_TYPE=${LIBVIRT_TYPE:-qemu} - -# TODO: switch to mysql for all services +# Mysql connection info MYSQL_PASS=${MYSQL_PASS:-nova} -SQL_CONN=${SQL_CONN:-mysql://root:$MYSQL_PASS@localhost/nova} -# TODO: set rabbitmq conn string explicitly as well +MYSQL_HOST=${MYSQL_HOST:-localhost} +# don't specify /db in this string, so we can use it for multiple services +BASE_SQL_CONN=${BASE_SQL_CONN:-mysql://root:$MYSQL_PASS@$MYSQL_HOST} + +# Rabbit connection info +RABBIT_HOST=${RABBIT_HOST:-localhost} # Install Packages # ================ @@ -180,7 +186,7 @@ mysql -uroot -p$MYSQL_PASS -e 'CREATE DATABASE glance;' # Copy over our glance-registry.conf GLANCE_CONF=$GLANCE_DIR/etc/glance-registry.conf cp $DIR/files/glance-registry.conf $GLANCE_CONF -sudo sed -e "s,%MYSQL_PASS%,$MYSQL_PASS,g" -i $GLANCE_CONF +sudo sed -e "s,%SQL_CONN%,$BASE_SQL_CONN/glance,g" -i $GLANCE_CONF # Nova # ---- @@ -198,13 +204,16 @@ add_nova_flag "--network_manager=nova.network.manager.$NET_MAN" add_nova_flag "--my_ip=$HOST_IP" add_nova_flag "--public_interface=$INTERFACE" add_nova_flag "--vlan_interface=$INTERFACE" -add_nova_flag "--sql_connection=$SQL_CONN" +add_nova_flag "--sql_connection=$BASE_SQL_CONN/nova" add_nova_flag "--libvirt_type=$LIBVIRT_TYPE" add_nova_flag "--osapi_extensions_path=$API_DIR/extensions" add_nova_flag "--vncproxy_url=http://$HOST_IP:6080" add_nova_flag "--vncproxy_wwwroot=$NOVNC_DIR/" add_nova_flag "--api_paste_config=$KEYSTONE_DIR/examples/paste/nova-api-paste.ini" add_nova_flag "--image_service=nova.image.glance.GlanceImageService" +add_nova_flag "--image_service=nova.image.glance.GlanceImageService" +add_nova_flag "--ec2_dmz_host=$EC2_DMZ_HOST" +add_nova_flag "--rabbit_host=$RABBIT_HOST" if [ -n "$FLAT_INTERFACE" ]; then add_nova_flag "--flat_interface=$FLAT_INTERFACE" fi @@ -253,7 +262,7 @@ mysql -uroot -p$MYSQL_PASS -e 'CREATE DATABASE keystone;' # FIXME (anthony) keystone should use keystone.conf.example KEYSTONE_CONF=$KEYSTONE_DIR/etc/keystone.conf cp $DIR/files/keystone.conf $KEYSTONE_CONF -sudo sed -e "s,%MYSQL_PASS%,$MYSQL_PASS,g" -i $KEYSTONE_CONF +sudo sed -e "s,%SQL_CONN%,$BASE_SQL_CONN/keystone,g" -i $KEYSTONE_CONF # initialize keystone with default users/endpoints BIN_DIR=$KEYSTONE_DIR/bin bash $DIR/files/keystone_data.sh