diff --git a/sbin/dm_deploy_ds_web_service.sh b/sbin/dm_deploy_ds_web_service.sh index a22bac0adbb83a4a43b0a31133250e4008c7d79f..8662eb65d17c13d7c5e3fb13d8f53a4895552776 100755 --- a/sbin/dm_deploy_ds_web_service.sh +++ b/sbin/dm_deploy_ds_web_service.sh @@ -61,6 +61,7 @@ DM_USER_SETUP_FILE=${DM_ETC_DIR}/${DM_DB_NAME}.setup.sh cmd="echo $DM_DS_WEB_SERVICE_HOST | sed 's?DM_HOSTNAME?$DM_HOSTNAME?'" DM_WEB_SERVICE_HOST=`eval $cmd` DM_WEB_SERVICE_PORT=$DM_DS_WEB_SERVICE_PORT +DM_SYSTEM_UNIX_ACCOUNT=`whoami` echo "DM web service host: $DM_WEB_SERVICE_HOST" echo "DM install directory: $DM_INSTALL_DIR" @@ -81,7 +82,7 @@ fi echo "Checking CA certificate" if [ ! -f $DM_CA_CERT_FILE ]; then echo "Creating DM CA" - /usr/bin/sudo $MY_DIR/dm_create_ca.sh || exit 1 + $MY_DIR/dm_create_ca.sh || exit 1 rsync -ar $DM_CA_DIR/cacert.pem $DM_CA_CERT_FILE else echo "DM CA certificate exists" @@ -91,7 +92,7 @@ echo "Checking service certificates" if [ ! -f $DM_WEB_SERVICE_CERT_FILE -o ! -f $DM_WEB_SERVICE_KEY_FILE ]; then echo "Creating DM $DM_WEB_SERVICE_DAEMON certificate" if [ ! -f $DM_CA_DIR/certs/$DM_WEB_SERVICE_HOST.crt ]; then - /usr/bin/sudo $MY_DIR/dm_create_server_cert.sh $DM_WEB_SERVICE_HOST $DM_WEB_SERVICE_HOST dm@aps.anl.gov || exit 1 + $MY_DIR/dm_create_server_cert.sh $DM_WEB_SERVICE_HOST $DM_WEB_SERVICE_HOST dm@aps.anl.gov || exit 1 fi rsync -ar $DM_CA_DIR/certs/$DM_WEB_SERVICE_HOST.crt $DM_WEB_SERVICE_CERT_FILE rsync -ar $DM_CA_DIR/certs/$DM_WEB_SERVICE_HOST.key $DM_WEB_SERVICE_KEY_FILE @@ -99,6 +100,18 @@ else echo "DM service certificate exists" fi +if [ -z "$DM_STORAGE_DIR" ]; then + read -p "Enter full path to DM storage directory: " DM_STORAGE_DIR +fi + +if [ -z "DM_STORAGE_DIR" ]; then + echo "DM storage directory directory cannot be empty." + exit 1 +fi +echo "Verifying DM storage directory $DM_STORAGE_DIR" +mkdir -p $DM_STORAGE_DIR || exit 1 + +# Prepare setup file echo "Checking service configuration file" if [ ! -f $DM_WEB_SERVICE_CONFIG_FILE ]; then echo "Generating service config file" @@ -110,7 +123,6 @@ if [ ! -f $DM_WEB_SERVICE_CONFIG_FILE ]; then | sed 's?handler=TimedRotatingFileLoggingHandler.*?handler=TimedRotatingFileLoggingHandler(\"$DM_WEB_SERVICE_LOG_FILE\")?g' \ | sed 's?DM_STORAGE_DIR?$DM_STORAGE_DIR?g' \ | sed 's?DM_INSTALL_DIR?$DM_INSTALL_DIR?g' \ - | sed 's?DM_DATA_DIR?$DM_DATA_DIR?g' \ | sed 's?DM_HOSTNAME?$DM_HOSTNAME?g' \ | sed 's?DM_DB_NAME?$DM_DB_NAME?g' \ > $DM_WEB_SERVICE_CONFIG_FILE" @@ -142,7 +154,6 @@ cmd="cat $versionFile | sed 's?__version__ =.*?__version__ = \"${DM_SOFTWARE_VER && mv $versionFile.2 $versionFile" eval $cmd -# Prepare setup file echo "Preparing setup file" cmd="cat $DM_ROOT_DIR/etc/setup.sh.template \ | sed 's?DM_ROOT_DIR=.*?DM_ROOT_DIR=$DM_ROOT_DIR?g' \ @@ -159,18 +170,18 @@ eval $cmd || exit 1 # Prepare sudo rules configureSudo="N" -read -p "Would you like to configure sudo rules (requires root password) in order to allow the $DM_SYSTEM_USER user to manage user groups and file system permissions? [y|N] " configureSudo +read -p "Would you like to configure sudo rules (requires root password) in order to allow the $DM_SYSTEM_UNIX_ACCOUNT user to manage user groups and file system permissions? [y|N] " configureSudo if [ "$configureSudo" = "y" -o "$configureSudo" = "Y" ]; then - sudoersFile=/etc/sudoers.d/$USER + sudoersFile=/etc/sudoers.d/$DM_SYSTEM_UNIX_ACCOUNT echo "Preparing DM sudo rules file $sudoersFile" cmd="su -c \"cat $DM_ROOT_DIR/etc/${DM_DB_NAME}.sudo-rules.template \ - | sed 's?DM_DATA_DIR?$DM_DATA_DIR?g' \ - | sed 's?DM_SYSTEM_USER?$USER?g' \ + | sed 's?DM_STORAGE_DIR?$DM_STORAGE_DIR?g' \ + | sed 's?DM_SYSTEM_UNIX_ACCOUNT?$DM_SYSTEM_UNIX_ACCOUNT?g' \ | sed 's?DM_HOSTNAME?$DM_HOSTNAME?g' \ > $sudoersFile\"" eval $cmd || exit 1 else - echo "Will not configure sudo access for $DM_SYSTEM_USER." + echo "Will not configure sudo access for $DM_SYSTEM_UNIX_ACCOUNT." fi echo "Starting ds web service for $DM_DB_NAME"