Raw File
setup-conf.sh
#!/bin/bash
#
# This script is run to setup the initial shim configuration file and
# certificate file. If the configuration file or the certificate file
# already exist they are *not* re-created.

CONF_FILE=/var/lib/shim/conf
CERT_FILE=/var/lib/shim/ssl_cert.pem

if [ -e "$CONF_FILE" ]
then
    echo "$CONF_FILE file exists, skip re-creating it."
else
    mkdir -p /var/lib/shim
    # Set up config file defaults
    PORT=1239
    INS=0
    TMP=/tmp
    s=`ps aux | grep SciDB  | grep "dbname" | head -n 1`
    if test -n "$s"
    then
        PORT=`echo "$s" | sed -e "s/.*--port //;s/ .*//"`
        INS=`echo "$s" | sed -e "s/.*--storage //;s/ .*//" | sed -e "s@.*/[0-9]*/\([0-9]*\)/.*@\1@"`
        INS=$(( $INS ))
        TMP=`echo "$s" | sed -e "s/.*--storage //;s/ .*//"`
        TMP=`dirname $TMP`
        SCIDBUSER=`ps axfo user:64,cmd | grep SciDB | grep dbname | head -n 1 | cut -d ' ' -f 1`
        # Write out an example config file to $CONF_FILE using running SciDB parameters
        cat > "$CONF_FILE" << EOF
# Shim configuration file
# Uncomment and change any of the following values. Restart shim for
# your changes to take effect (default values are shown). See
# man shim
# for more information on the options.

#ports=8080,8083s
#scidbhost=localhost
scidbport=$PORT
instance=$INS
tmp=$TMP
user=$SCIDBUSER
#max_sessions=50
#timeout=60
#aio=0
EOF
    else
        # Write out an example config file to $CONF_FILE completely commented out
        cat > "$CONF_FILE" << EOF
# Shim configuration file
# Uncomment and change any of the following values. Restart shim for
# your changes to take effect (default values are shown). See
# man shim
# for more information on the options.

#ports=8080,8083s
#scidbhost=localhost
#scidbport=1239
#instance=0
#tmp=/storage/database/0/0/tmp
#user=scidb
#max_sessions=50
#timeout=60
#aio=0
EOF
    fi
fi

if [ -e "$CERT_FILE" ]
then
    echo "$CERT_FILE file exists, skip re-creating it."
else
    # Generate a certificate
    openssl req                                                         \
            -new                                                        \
            -newkey rsa:4096                                            \
            -days 3650                                                  \
            -nodes                                                      \
            -x509                                                       \
            -subj "/C=US/ST=MA/L=Waltham/O=Paradigm4/CN=$(hostname)"    \
            -keyout "$CERT_FILE"                                        \
            2> /dev/null                                                \
            >> "$CERT_FILE"
    if test $? -ne 0; then
        echo "SSL certificate generation failed openssl not found: TLS disabled."
        rm -f "$CERT_FILE"
    fi
fi
back to top