diff --git a/2.9/scripts/docker-entrypoint.sh b/2.9/scripts/docker-entrypoint.sh index ff9ae03..5b69441 100755 --- a/2.9/scripts/docker-entrypoint.sh +++ b/2.9/scripts/docker-entrypoint.sh @@ -1,5 +1,13 @@ #!/bin/bash +echo +echo "+----------------------------------------------------------+" +echo "| |" +echo "| Welcome to OCS Inventory NG Management Docker! |" +echo "| |" +echo "+----------------------------------------------------------+" +echo + # Create all directories mkdir -p $OCS_LOG_DIR mkdir -p $OCS_PERLEXT_DIR/Apache/Ocsinventory/Plugins @@ -15,9 +23,28 @@ if [ ! -f $OCS_WEBCONSOLE_DIR/ocsreports/var.php ]; then rm -rf ${OCS_WEBCONSOLE_DIR}/ocsreports/dbconfig.inc.php fi; +if [ ! -z ${OCS_DISABLE_COM_MODE+x} ]; then + echo + echo "+---------------------------------------------------------------------------+" + echo "| Warning: OCS_DISABLE_COM_MODE environment variable is set! |" + echo "| Communication server, which handles HTTP communications between database |" + echo "| server and agents (Apache, perl and mod_perl) will be DISABLED! |" + echo "+---------------------------------------------------------------------------+" + echo +fi + +if [ ! -z ${OCS_DISABLE_WEB_MODE+x} ]; then + echo + echo "+---------------------------------------------------------------------------+" + echo "| Warning: OCS_DISABLE_WEB_MODE environment variable is set! |" + echo "| Administration console, which allows administrators to query the database |" + echo "| server using their favorite browser (Apache, php) will be DISABLED! |" + echo "+---------------------------------------------------------------------------+" + echo +fi # Configure z-ocsinventory-server file -if [ ! -f /etc/httpd/conf.d/z-ocsinventory-server.conf ]; then +if [ ! -f /etc/httpd/conf.d/z-ocsinventory-server.conf ] && [ -z ${OCS_DISABLE_COM_MODE+x} ]; then cp /tmp/conf/ocsinventory-server.conf /etc/httpd/conf.d/z-ocsinventory-server.conf sed -i 's/VERSION_MP/2/g' /etc/httpd/conf.d/z-ocsinventory-server.conf sed -i 's/DATABASE_SERVER/'"$OCS_DB_SERVER"'/g' /etc/httpd/conf.d/z-ocsinventory-server.conf @@ -28,15 +55,27 @@ if [ ! -f /etc/httpd/conf.d/z-ocsinventory-server.conf ]; then sed -i 's/"PATH_TO_LOG_DIRECTORY"/'"${OCS_LOG_DIR//\//\\/}"'/g' /etc/httpd/conf.d/z-ocsinventory-server.conf sed -i 's/"PATH_TO_PLUGINS_PERL_DIRECTORY"/'"${OCS_PERLEXT_DIR//\//\\/}"'/g' /etc/httpd/conf.d/z-ocsinventory-server.conf sed -i 's/"PATH_TO_PLUGINS_CONFIG_DIRECTORY"/'"${OCS_PLUGINSEXT_DIR//\//\\/}"'/g' /etc/httpd/conf.d/z-ocsinventory-server.conf - sed -i 's/OCS_SSL_ENABLED/'"$OCS_SSL_ENABLED"'/g' /etc/httpd/conf.d/z-ocsinventory-server.conf - sed -i 's/OCS_SSL_KEY/'"${OCS_SSL_KEY//\//\\/}"'/g' /etc/httpd/conf.d/z-ocsinventory-server.conf - sed -i 's/OCS_SSL_CERT/'"${OCS_SSL_CERT//\//\\/}"'/g' /etc/httpd/conf.d/z-ocsinventory-server.conf - sed -i 's/OCS_SSL_CA/'"${OCS_SSL_CA//\//\\/}"'/g' /etc/httpd/conf.d/z-ocsinventory-server.conf - sed -i 's/OCS_SSL_COM_MODE/'"$OCS_SSL_COM_MODE"'/g' /etc/httpd/conf.d/z-ocsinventory-server.conf +fi + +# Replace Variables +SRV_CONF_FILE="/etc/httpd/conf.d/z-ocsinventory-server.conf" +if [ -f ${SRV_CONF_FILE} ] && [ -z ${OCS_DISABLE_COM_MODE+x} ]; then + echo "+-----------------------------------------------+" + echo "| Customizing from environment variables... |" + echo "+-----------------------------------------------+" + echo + # Get all env vars starting with 'OCS_' + for var in $(env | cut -f1 -d= | grep -i OCS_); do + # Check that the current var is not commented out in conf file + if grep -q "^\s*PerlSetEnv ${var^^}" ${SRV_CONF_FILE} ; then + echo "Applying Config ${var^^}=${!var} from environment variable" + sed -ie "s,^\(\s*PerlSetEnv ${var^^}\).*$,\1 ${!var},g" ${SRV_CONF_FILE} + fi + done fi # Configure ocsinventory-reports file -if [ ! -f /etc/httpd/conf.d/ocsinventory-reports.conf ]; then +if [ ! -f /etc/httpd/conf.d/ocsinventory-reports.conf ] && [ -z ${OCS_DISABLE_WEB_MODE+x} ]; then cp /tmp/conf/ocsinventory-reports.conf /etc/httpd/conf.d/ocsinventory-reports.conf sed -i 's/OCSREPORTS_ALIAS/\/ocsreports/g' /etc/httpd/conf.d/ocsinventory-reports.conf sed -i 's/PATH_TO_OCSREPORTS_DIR/'"${OCS_WEBCONSOLE_DIR//\//\\/}"'\/ocsreports/g' /etc/httpd/conf.d/ocsinventory-reports.conf @@ -47,7 +86,7 @@ if [ ! -f /etc/httpd/conf.d/ocsinventory-reports.conf ]; then fi # Generate dbconfig.inc.php -if [ ! -f $OCS_WEBCONSOLE_DIR/ocsreports/dbconfig.inc.php ]; then +if [ ! -f $OCS_WEBCONSOLE_DIR/ocsreports/dbconfig.inc.php ] && [ -z ${OCS_DISABLE_WEB_MODE+x} ]; then cp /tmp/conf/dbconfig.inc.php $OCS_WEBCONSOLE_DIR/ocsreports sed -i 's/OCS_DB_NAME/'"$OCS_DB_NAME"'/g' $OCS_WEBCONSOLE_DIR/ocsreports/dbconfig.inc.php sed -i 's/OCS_READ_NAME/'"$OCS_DB_SERVER"'/g' $OCS_WEBCONSOLE_DIR/ocsreports/dbconfig.inc.php @@ -73,9 +112,14 @@ if [ -f $OCS_WEBCONSOLE_DIR/ocsreports/install.php ]; then fi # Remove temp files +echo +echo "+--------------------------------+" +echo "| Removing not used files... |" +echo "+--------------------------------+" +echo cd /tmp shopt -s extglob -rm -rf -v !("conf") +rm -rf !("conf") # Apache start if [ ! -d "$APACHE_RUN_DIR" ]; then @@ -86,4 +130,11 @@ if [ -f "$APACHE_PID_FILE" ]; then rm "$APACHE_PID_FILE" fi +echo "+----------------------------------------------------------+" +echo "| OK, prepare finshed ;-) |" +echo "| |" +echo "| Starting OCS Inventory NG Management Docker... |" +echo "+----------------------------------------------------------+" +echo + /usr/sbin/httpd -DFOREGROUND