From 70dc5e0578cd56bd0c5bd300515416ed4c4ec260 Mon Sep 17 00:00:00 2001 From: Anthony Young Date: Thu, 15 Sep 2011 16:52:43 -0700 Subject: [PATCH] only run certain code if th respective service has been enabled --- stack.sh | 247 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 134 insertions(+), 113 deletions(-) diff --git a/stack.sh b/stack.sh index dcd6faf..86c5cc0 100755 --- a/stack.sh +++ b/stack.sh @@ -38,7 +38,7 @@ NOVNC_DIR=$DEST/noVNC MUNIN_DIR=$DEST/openstack-munin # Specify which services to launch. These generally correspond to screen tabs -ENABLED_SERVICES=${ENABLED_SERVICES:-g-api,g-reg,key,n-api,n-cpu,n-net,n-sch,n-vnc,dash} +ENABLED_SERVICES=${ENABLED_SERVICES:-g-api,g-reg,key,n-api,n-cpu,n-net,n-sch,n-vnc,dash,mysql,rabbit} # Use the first IP unless an explicit is set by ``HOST_IP`` environment variable if [ ! -n "$HOST_IP" ]; then @@ -130,17 +130,6 @@ cd $API_DIR; sudo python setup.py develop cd $DASH_DIR/django-openstack; sudo python setup.py develop cd $DASH_DIR/openstack-dashboard; sudo python setup.py develop -# attempt to load modules: kvm (hardware virt) and nbd (network block -# device - used to manage qcow images) -sudo modprobe nbd || true -sudo modprobe kvm || true -# user needs to be member of libvirtd group for nova-compute to use libvirt -sudo usermod -a -G libvirtd `whoami` -# if kvm wasn't running before we need to restart libvirt to enable it -sudo /etc/init.d/libvirt-bin restart - -## FIXME(ja): should LIBVIRT_TYPE be kvm if kvm module is loaded? - # add useful screenrc cp $DIR/files/screenrc ~/.screenrc @@ -155,76 +144,89 @@ cp $DIR/files/screenrc ~/.screenrc # Dash currently imports quantum even if you aren't using it. Instead # of installing quantum we can create a simple module that will pass the # initial imports -sudo mkdir -p $DASH_DIR/openstack-dashboard/quantum || true -sudo touch $DASH_DIR/openstack-dashboard/quantum/__init__.py -sudo touch $DASH_DIR/openstack-dashboard/quantum/client.py - -cd $DASH_DIR/openstack-dashboard -sudo cp local/local_settings.py.example local/local_settings.py -dashboard/manage.py syncdb - -# create an empty directory that apache uses as docroot -sudo mkdir -p $DASH_DIR/.blackhole +if [[ "$ENABLED_SERVICES" =~ "dash" ]]; then + sudo mkdir -p $DASH_DIR/openstack-dashboard/quantum || true + sudo touch $DASH_DIR/openstack-dashboard/quantum/__init__.py + sudo touch $DASH_DIR/openstack-dashboard/quantum/client.py + + cd $DASH_DIR/openstack-dashboard + sudo cp local/local_settings.py.example local/local_settings.py + dashboard/manage.py syncdb + + # create an empty directory that apache uses as docroot + sudo mkdir -p $DASH_DIR/.blackhole + + ## Configure apache's 000-default to run dashboard + sudo cp $DIR/files/000-default.template /etc/apache2/sites-enabled/000-default + sudo sed -e "s,%DASH_DIR%,$DASH_DIR,g" -i /etc/apache2/sites-enabled/000-default + + # ``python setup.py develop`` left some files owned by root in ``DASH_DIR`` and + # others by the original owner. We need to change the owner to apache so + # dashboard can run + sudo chown -R www-data:www-data $DASH_DIR +fi -## Configure apache's 000-default to run dashboard -sudo cp $DIR/files/000-default.template /etc/apache2/sites-enabled/000-default -sudo sed -e "s,%DASH_DIR%,$DASH_DIR,g" -i /etc/apache2/sites-enabled/000-default -# ``python setup.py develop`` left some files owned by root in ``DASH_DIR`` and -# others by the original owner. We need to change the owner to apache so -# dashboard can run -sudo chown -R www-data:www-data $DASH_DIR +# Mysql +# --------- +# +if [[ "$ENABLED_SERVICES" =~ "mysql" ]]; then + # Update the DB to give user ‘$MYSQL_USER’@’%’ full control of the all databases: + sudo mysql -uroot -p$MYSQL_PASS -e "GRANT ALL PRIVILEGES ON *.* TO '$MYSQL_USER'@'%' identified by '$MYSQL_PASS';" -# Update the DB to give user ‘$MYSQL_USER’@’%’ full control of the all databases: -sudo mysql -uroot -p$MYSQL_PASS -e "GRANT ALL PRIVILEGES ON *.* TO '$MYSQL_USER'@'%' identified by '$MYSQL_PASS';" + # Edit /etc/mysql/my.cnf to change ‘bind-address’ from localhost (127.0.0.1) to any (0.0.0.0) and restart the mysql service: + sudo sed -i 's/127.0.0.1/0.0.0.0/g' /etc/mysql/my.cnf + sudo service mysql restart +fi -# Edit /etc/mysql/my.cnf to change ‘bind-address’ from localhost (127.0.0.1) to any (0.0.0.0) and restart the mysql service: -sudo sed -i 's/127.0.0.1/0.0.0.0/g' /etc/mysql/my.cnf -sudo service mysql restart # Munin # ----- -# allow connections from other hosts -sudo sed -i -e '/Allow from localhost/s/localhost.*$/all/' /etc/munin/apache.conf -cat >/tmp/nova </tmp/nova <