From 90ae7d238a1f862922800e04a07dad49d40b98ec Mon Sep 17 00:00:00 2001 From: Wilton Rodrigues Date: Fri, 29 Oct 2021 11:21:26 -0300 Subject: [PATCH 1/3] Replacing repetition of config files --- 2.9/scripts/docker-entrypoint.sh | 71 +++++++++++++++++--------------- 1 file changed, 37 insertions(+), 34 deletions(-) diff --git a/2.9/scripts/docker-entrypoint.sh b/2.9/scripts/docker-entrypoint.sh index 5b69441..c4f6dae 100755 --- a/2.9/scripts/docker-entrypoint.sh +++ b/2.9/scripts/docker-entrypoint.sh @@ -1,5 +1,9 @@ #!/bin/bash +SRV_CONF_FILE="/etc/httpd/conf.d/z-ocsinventory-server.conf" +REPORTS_CONF_FILE="/etc/httpd/conf.d/ocsinventory-reports.conf" +DB_CONFIG_INC_FILE="${OCS_WEBCONSOLE_DIR}/ocsreports/dbconfig.inc.php" + echo echo "+----------------------------------------------------------+" echo "| |" @@ -20,7 +24,7 @@ mkdir -p $OCS_VARLIB_DIR/snmp if [ ! -f $OCS_WEBCONSOLE_DIR/ocsreports/var.php ]; then cp -r /tmp/OCSNG_UNIX_SERVER-2.9/ocsreports/ ${OCS_WEBCONSOLE_DIR} - rm -rf ${OCS_WEBCONSOLE_DIR}/ocsreports/dbconfig.inc.php + rm -rf ${DB_CONFIG_INC_FILE} fi; if [ ! -z ${OCS_DISABLE_COM_MODE+x} ]; then @@ -28,7 +32,7 @@ if [ ! -z ${OCS_DISABLE_COM_MODE+x} ]; then 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 "| server and agents (Apache, perl and mod_perl) will be DISABLED! |" echo "+---------------------------------------------------------------------------+" echo fi @@ -44,21 +48,20 @@ if [ ! -z ${OCS_DISABLE_WEB_MODE+x} ]; then fi # Configure z-ocsinventory-server file -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 - sed -i 's/DATABASE_PORT/'"$OCS_DB_PORT"'/g' /etc/httpd/conf.d/z-ocsinventory-server.conf - sed -i 's/DATABASE_NAME/'"$OCS_DB_NAME"'/g' /etc/httpd/conf.d/z-ocsinventory-server.conf - sed -i 's/DATABASE_USER/'"$OCS_DB_USER"'/g' /etc/httpd/conf.d/z-ocsinventory-server.conf - sed -i 's/DATABASE_PASSWD/'"$OCS_DB_PASS"'/g' /etc/httpd/conf.d/z-ocsinventory-server.conf - 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 +if [ ! -f ${SRV_CONF_FILE} ] && [ -z ${OCS_DISABLE_COM_MODE+x} ]; then + cp /tmp/conf/ocsinventory-server.conf ${SRV_CONF_FILE} + sed -i 's/VERSION_MP/2/g' ${SRV_CONF_FILE} + sed -i 's/DATABASE_SERVER/'"$OCS_DB_SERVER"'/g' ${SRV_CONF_FILE} + sed -i 's/DATABASE_PORT/'"$OCS_DB_PORT"'/g' ${SRV_CONF_FILE} + sed -i 's/DATABASE_NAME/'"$OCS_DB_NAME"'/g' ${SRV_CONF_FILE} + sed -i 's/DATABASE_USER/'"$OCS_DB_USER"'/g' ${SRV_CONF_FILE} + sed -i 's/DATABASE_PASSWD/'"$OCS_DB_PASS"'/g' ${SRV_CONF_FILE} + sed -i 's/"PATH_TO_LOG_DIRECTORY"/'"${OCS_LOG_DIR//\//\\/}"'/g' ${SRV_CONF_FILE} + sed -i 's/"PATH_TO_PLUGINS_PERL_DIRECTORY"/'"${OCS_PERLEXT_DIR//\//\\/}"'/g' ${SRV_CONF_FILE} + sed -i 's/"PATH_TO_PLUGINS_CONFIG_DIRECTORY"/'"${OCS_PLUGINSEXT_DIR//\//\\/}"'/g' ${SRV_CONF_FILE} 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... |" @@ -75,30 +78,30 @@ if [ -f ${SRV_CONF_FILE} ] && [ -z ${OCS_DISABLE_COM_MODE+x} ]; then fi # Configure ocsinventory-reports file -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 - sed -i 's/PACKAGES_ALIAS/\/download/g' /etc/httpd/conf.d/ocsinventory-reports.conf - sed -i 's/PATH_TO_PACKAGES_DIR/'"${OCS_VARLIB_DIR//\//\\/}"'download/g' /etc/httpd/conf.d/ocsinventory-reports.conf - sed -i 's/SNMP_ALIAS/\/snmp/g' /etc/httpd/conf.d/ocsinventory-reports.conf - sed -i 's/PATH_TO_SNMP_DIR/'"${OCS_VARLIB_DIR//\//\\/}"'snmp/g' /etc/httpd/conf.d/ocsinventory-reports.conf +if [ ! -f ${REPORTS_CONF_FILE} ] && [ -z ${OCS_DISABLE_WEB_MODE+x} ]; then + cp /tmp/conf/ocsinventory-reports.conf ${REPORTS_CONF_FILE} + sed -i 's/OCSREPORTS_ALIAS/\/ocsreports/g' ${REPORTS_CONF_FILE} + sed -i 's/PATH_TO_OCSREPORTS_DIR/'"${OCS_WEBCONSOLE_DIR//\//\\/}"'\/ocsreports/g' ${REPORTS_CONF_FILE} + sed -i 's/PACKAGES_ALIAS/\/download/g' ${REPORTS_CONF_FILE} + sed -i 's/PATH_TO_PACKAGES_DIR/'"${OCS_VARLIB_DIR//\//\\/}"'download/g' ${REPORTS_CONF_FILE} + sed -i 's/SNMP_ALIAS/\/snmp/g' ${REPORTS_CONF_FILE} + sed -i 's/PATH_TO_SNMP_DIR/'"${OCS_VARLIB_DIR//\//\\/}"'snmp/g' ${REPORTS_CONF_FILE} fi # Generate dbconfig.inc.php -if [ ! -f $OCS_WEBCONSOLE_DIR/ocsreports/dbconfig.inc.php ] && [ -z ${OCS_DISABLE_WEB_MODE+x} ]; then +if [ ! -f ${DB_CONFIG_INC_FILE} ] && [ -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 - sed -i 's/OCS_WRITE_NAME/'"$OCS_DB_SERVER"'/g' $OCS_WEBCONSOLE_DIR/ocsreports/dbconfig.inc.php - sed -i 's/OCS_DB_PORT/'"$OCS_DB_PORT"'/g' $OCS_WEBCONSOLE_DIR/ocsreports/dbconfig.inc.php - sed -i 's/OCS_DB_USER/'"$OCS_DB_USER"'/g' $OCS_WEBCONSOLE_DIR/ocsreports/dbconfig.inc.php - sed -i 's/OCS_DB_PASS/'"$OCS_DB_PASS"'/g' $OCS_WEBCONSOLE_DIR/ocsreports/dbconfig.inc.php - sed -i 's/OCS_SSL_ENABLED/'"$OCS_SSL_ENABLED"'/g' $OCS_WEBCONSOLE_DIR/ocsreports/dbconfig.inc.php - sed -i 's/OCS_SSL_WEB_MODE/'"$OCS_SSL_WEB_MODE"'/g' $OCS_WEBCONSOLE_DIR/ocsreports/dbconfig.inc.php - sed -i 's/OCS_SSL_KEY/'"${OCS_SSL_KEY//\//\\/}"'/g' $OCS_WEBCONSOLE_DIR/ocsreports/dbconfig.inc.php - sed -i 's/OCS_SSL_CERT/'"${OCS_SSL_CERT//\//\\/}"'/g' $OCS_WEBCONSOLE_DIR/ocsreports/dbconfig.inc.php - sed -i 's/OCS_SSL_CA/'"${OCS_SSL_CA//\//\\/}"'/g' $OCS_WEBCONSOLE_DIR/ocsreports/dbconfig.inc.php + sed -i 's/OCS_DB_NAME/'"$OCS_DB_NAME"'/g' ${DB_CONFIG_INC_FILE} + sed -i 's/OCS_READ_NAME/'"$OCS_DB_SERVER"'/g' ${DB_CONFIG_INC_FILE} + sed -i 's/OCS_WRITE_NAME/'"$OCS_DB_SERVER"'/g' ${DB_CONFIG_INC_FILE} + sed -i 's/OCS_DB_PORT/'"$OCS_DB_PORT"'/g' ${DB_CONFIG_INC_FILE} + sed -i 's/OCS_DB_USER/'"$OCS_DB_USER"'/g' ${DB_CONFIG_INC_FILE} + sed -i 's/OCS_DB_PASS/'"$OCS_DB_PASS"'/g' ${DB_CONFIG_INC_FILE} + sed -i 's/OCS_SSL_ENABLED/'"$OCS_SSL_ENABLED"'/g' ${DB_CONFIG_INC_FILE} + sed -i 's/OCS_SSL_WEB_MODE/'"$OCS_SSL_WEB_MODE"'/g' ${DB_CONFIG_INC_FILE} + sed -i 's/OCS_SSL_KEY/'"${OCS_SSL_KEY//\//\\/}"'/g' ${DB_CONFIG_INC_FILE} + sed -i 's/OCS_SSL_CERT/'"${OCS_SSL_CERT//\//\\/}"'/g' ${DB_CONFIG_INC_FILE} + sed -i 's/OCS_SSL_CA/'"${OCS_SSL_CA//\//\\/}"'/g' ${DB_CONFIG_INC_FILE} fi # Permissions From 28537752ceed8405c7570a5128d2e380f6293f80 Mon Sep 17 00:00:00 2001 From: Wilton Rodrigues Date: Fri, 29 Oct 2021 14:59:17 -0300 Subject: [PATCH 2/3] Minors Fixings - Removing wrong parameter for sed - Using OCS_VERSION in docker-entrypoint.sh --- 2.9/scripts/docker-entrypoint.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/2.9/scripts/docker-entrypoint.sh b/2.9/scripts/docker-entrypoint.sh index c4f6dae..3740cbb 100755 --- a/2.9/scripts/docker-entrypoint.sh +++ b/2.9/scripts/docker-entrypoint.sh @@ -23,7 +23,7 @@ mkdir -p $OCS_VARLIB_DIR/scripts mkdir -p $OCS_VARLIB_DIR/snmp if [ ! -f $OCS_WEBCONSOLE_DIR/ocsreports/var.php ]; then - cp -r /tmp/OCSNG_UNIX_SERVER-2.9/ocsreports/ ${OCS_WEBCONSOLE_DIR} + cp -r /tmp/OCSNG_UNIX_SERVER-${OCS_VERSION}/ocsreports/ ${OCS_WEBCONSOLE_DIR} rm -rf ${DB_CONFIG_INC_FILE} fi; @@ -72,7 +72,7 @@ if [ -f ${SRV_CONF_FILE} ] && [ -z ${OCS_DISABLE_COM_MODE+x} ]; then # 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} + sed -i "s,^\(\s*PerlSetEnv ${var^^}\).*$,\1 ${!var},g" ${SRV_CONF_FILE} fi done fi From d1bec1d31d2a84f34f7be4a41d92c0705b0b8286 Mon Sep 17 00:00:00 2001 From: Charly Gregoire Date: Mon, 8 Nov 2021 16:30:00 +0000 Subject: [PATCH 3/3] implemented api feature on docker image for latest version, nightly and dev --- 2.9/conf/ocsinventory-restapi.conf | 23 +++++++++++++++++++++++ 2.9/scripts/docker-entrypoint.sh | 15 +++++++++++++++ dev/conf/ocsinventory-restapi.conf | 23 +++++++++++++++++++++++ dev/scripts/docker-entrypoint.sh | 17 ++++++++++++++++- nightly/Dockerfile | 4 +++- nightly/conf/ocsinventory-restapi.conf | 23 +++++++++++++++++++++++ nightly/scripts/docker-entrypoint.sh | 15 ++++++++++++++- 7 files changed, 117 insertions(+), 3 deletions(-) create mode 100644 2.9/conf/ocsinventory-restapi.conf create mode 100644 dev/conf/ocsinventory-restapi.conf create mode 100644 nightly/conf/ocsinventory-restapi.conf diff --git a/2.9/conf/ocsinventory-restapi.conf b/2.9/conf/ocsinventory-restapi.conf new file mode 100644 index 0000000..958818b --- /dev/null +++ b/2.9/conf/ocsinventory-restapi.conf @@ -0,0 +1,23 @@ +PerlOptions +Parent + + + $ENV{PLACK_ENV} = 'production'; + $ENV{MOJO_HOME} = 'REST_API_PATH'; + $ENV{MOJO_MODE} = 'deployment'; + $ENV{OCS_DB_HOST} = 'DATABASE_SERVER'; + $ENV{OCS_DB_PORT} = 'DATABASE_PORT'; + $ENV{OCS_DB_LOCAL} = 'DATABASE_NAME'; + $ENV{OCS_DB_USER} = 'DATABASE_USER'; + $ENV{OCS_DB_PWD} = 'DATABASE_PASSWD'; + $ENV{OCS_DB_SSL_ENABLED} = OCS_SSL_ENABLED; +# $ENV{OCS_DB_SSL_CLIENT_KEY} = ''; +# $ENV{OCS_DB_SSL_CLIENT_CERT} = ''; +# $ENV{OCS_DB_SSL_CA_CERT} = ''; + $ENV{OCS_DB_SSL_MODE} = 'SSL_MODE_PREFERRED'; + + + + SetHandler perl-script + PerlResponseHandler Plack::Handler::Apache2 + PerlSetVar psgi_app 'REST_API_LOADER_PATH' + diff --git a/2.9/scripts/docker-entrypoint.sh b/2.9/scripts/docker-entrypoint.sh index 5b69441..6659de3 100755 --- a/2.9/scripts/docker-entrypoint.sh +++ b/2.9/scripts/docker-entrypoint.sh @@ -22,6 +22,8 @@ if [ ! -f $OCS_WEBCONSOLE_DIR/ocsreports/var.php ]; then cp -r /tmp/OCSNG_UNIX_SERVER-2.9/ocsreports/ ${OCS_WEBCONSOLE_DIR} rm -rf ${OCS_WEBCONSOLE_DIR}/ocsreports/dbconfig.inc.php fi; + +cp -r /tmp/OCSNG_UNIX_SERVER-2.9/Api/ /usr/local/share/perl5 if [ ! -z ${OCS_DISABLE_COM_MODE+x} ]; then echo @@ -57,6 +59,19 @@ if [ ! -f /etc/httpd/conf.d/z-ocsinventory-server.conf ] && [ -z ${OCS_DISABLE_C sed -i 's/"PATH_TO_PLUGINS_CONFIG_DIRECTORY"/'"${OCS_PLUGINSEXT_DIR//\//\\/}"'/g' /etc/httpd/conf.d/z-ocsinventory-server.conf fi +# Configure zz-ocsinventory-restapi file +if [ ! -f /etc/httpd/conf.d/zz-ocsinventory-restapi.conf ]; then + cp /tmp/conf/ocsinventory-restapi.conf /etc/httpd/conf.d/zz-ocsinventory-restapi.conf + sed -i 's/DATABASE_SERVER/'"$OCS_DB_SERVER"'/g' /etc/httpd/conf.d/zz-ocsinventory-restapi.conf + sed -i 's/DATABASE_PORT/'"$OCS_DB_PORT"'/g' /etc/httpd/conf.d/zz-ocsinventory-restapi.conf + sed -i 's/DATABASE_NAME/'"$OCS_DB_NAME"'/g' /etc/httpd/conf.d/zz-ocsinventory-restapi.conf + sed -i 's/DATABASE_USER/'"$OCS_DB_USER"'/g' /etc/httpd/conf.d/zz-ocsinventory-restapi.conf + sed -i 's/DATABASE_PASSWD/'"$OCS_DB_PASS"'/g' /etc/httpd/conf.d/zz-ocsinventory-restapi.conf + sed -i 's/OCS_SSL_ENABLED/'"$OCS_SSL_ENABLED"'/g' /etc/httpd/conf.d/zz-ocsinventory-restapi.conf + sed -i 's/REST_API_PATH/\/usr\/local\/share\/perl5/g' /etc/httpd/conf.d/zz-ocsinventory-restapi.conf + sed -i 's/REST_API_LOADER_PATH/\/usr\/local\/share\/perl5\/Api\/Ocsinventory\/Restapi\/Loader.pm/g' /etc/httpd/conf.d/zz-ocsinventory-restapi.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 diff --git a/dev/conf/ocsinventory-restapi.conf b/dev/conf/ocsinventory-restapi.conf new file mode 100644 index 0000000..958818b --- /dev/null +++ b/dev/conf/ocsinventory-restapi.conf @@ -0,0 +1,23 @@ +PerlOptions +Parent + + + $ENV{PLACK_ENV} = 'production'; + $ENV{MOJO_HOME} = 'REST_API_PATH'; + $ENV{MOJO_MODE} = 'deployment'; + $ENV{OCS_DB_HOST} = 'DATABASE_SERVER'; + $ENV{OCS_DB_PORT} = 'DATABASE_PORT'; + $ENV{OCS_DB_LOCAL} = 'DATABASE_NAME'; + $ENV{OCS_DB_USER} = 'DATABASE_USER'; + $ENV{OCS_DB_PWD} = 'DATABASE_PASSWD'; + $ENV{OCS_DB_SSL_ENABLED} = OCS_SSL_ENABLED; +# $ENV{OCS_DB_SSL_CLIENT_KEY} = ''; +# $ENV{OCS_DB_SSL_CLIENT_CERT} = ''; +# $ENV{OCS_DB_SSL_CA_CERT} = ''; + $ENV{OCS_DB_SSL_MODE} = 'SSL_MODE_PREFERRED'; + + + + SetHandler perl-script + PerlResponseHandler Plack::Handler::Apache2 + PerlSetVar psgi_app 'REST_API_LOADER_PATH' + diff --git a/dev/scripts/docker-entrypoint.sh b/dev/scripts/docker-entrypoint.sh index 10bd3b7..f66cafc 100755 --- a/dev/scripts/docker-entrypoint.sh +++ b/dev/scripts/docker-entrypoint.sh @@ -32,6 +32,8 @@ make make install cd .. +cp -R Api/ /usr/local/share/perl5 + # Webconsole cp -R ocsreports/. $OCS_WEBCONSOLE_DIR @@ -52,6 +54,19 @@ sed -i 's/OCS_SSL_CERT/'"${OCS_SSL_CERT//\//\\/}"'/g' /etc/httpd/conf.d/z-ocsinv 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 +# Configure zz-ocsinventory-restapi file +if [ ! -f /etc/httpd/conf.d/zz-ocsinventory-restapi.conf ]; then + cp /tmp/conf/ocsinventory-restapi.conf /etc/httpd/conf.d/zz-ocsinventory-restapi.conf + sed -i 's/DATABASE_SERVER/'"$OCS_DB_SERVER"'/g' /etc/httpd/conf.d/zz-ocsinventory-restapi.conf + sed -i 's/DATABASE_PORT/'"$OCS_DB_PORT"'/g' /etc/httpd/conf.d/zz-ocsinventory-restapi.conf + sed -i 's/DATABASE_NAME/'"$OCS_DB_NAME"'/g' /etc/httpd/conf.d/zz-ocsinventory-restapi.conf + sed -i 's/DATABASE_USER/'"$OCS_DB_USER"'/g' /etc/httpd/conf.d/zz-ocsinventory-restapi.conf + sed -i 's/DATABASE_PASSWD/'"$OCS_DB_PASS"'/g' /etc/httpd/conf.d/zz-ocsinventory-restapi.conf + sed -i 's/OCS_SSL_ENABLED/'"$OCS_SSL_ENABLED"'/g' /etc/httpd/conf.d/zz-ocsinventory-restapi.conf + sed -i 's/REST_API_PATH/\/usr\/local\/share\/perl5/g' /etc/httpd/conf.d/zz-ocsinventory-restapi.conf + sed -i 's/REST_API_LOADER_PATH/\/usr\/local\/share\/perl5\/Api\/Ocsinventory\/Restapi\/Loader.pm/g' /etc/httpd/conf.d/zz-ocsinventory-restapi.conf +fi + # Configure ocsinventory-reports file cp /tmp/ocsinventory-reports.conf /etc/httpd/conf.d/ocsinventory-reports.conf sed -i 's/OCSREPORTS_ALIAS/\/ocsreports/g' /etc/httpd/conf.d/ocsinventory-reports.conf @@ -89,4 +104,4 @@ if [ -f "$APACHE_PID_FILE" ]; then rm "$APACHE_PID_FILE" fi -/usr/sbin/httpd -DFOREGROUND \ No newline at end of file +/usr/sbin/httpd -DFOREGROUND diff --git a/nightly/Dockerfile b/nightly/Dockerfile index 5589b85..f66bd70 100644 --- a/nightly/Dockerfile +++ b/nightly/Dockerfile @@ -72,6 +72,8 @@ RUN cd Apache/ && \ make && \ make install ; +RUN cp -r Api/ /usr/local/share/perl5/ + WORKDIR /tmp COPY conf/ /tmp/conf @@ -79,4 +81,4 @@ COPY ./scripts/docker-entrypoint.sh /usr/bin/docker-entrypoint.sh EXPOSE 80 443 -ENTRYPOINT ["/usr/bin/docker-entrypoint.sh"] \ No newline at end of file +ENTRYPOINT ["/usr/bin/docker-entrypoint.sh"] diff --git a/nightly/conf/ocsinventory-restapi.conf b/nightly/conf/ocsinventory-restapi.conf new file mode 100644 index 0000000..958818b --- /dev/null +++ b/nightly/conf/ocsinventory-restapi.conf @@ -0,0 +1,23 @@ +PerlOptions +Parent + + + $ENV{PLACK_ENV} = 'production'; + $ENV{MOJO_HOME} = 'REST_API_PATH'; + $ENV{MOJO_MODE} = 'deployment'; + $ENV{OCS_DB_HOST} = 'DATABASE_SERVER'; + $ENV{OCS_DB_PORT} = 'DATABASE_PORT'; + $ENV{OCS_DB_LOCAL} = 'DATABASE_NAME'; + $ENV{OCS_DB_USER} = 'DATABASE_USER'; + $ENV{OCS_DB_PWD} = 'DATABASE_PASSWD'; + $ENV{OCS_DB_SSL_ENABLED} = OCS_SSL_ENABLED; +# $ENV{OCS_DB_SSL_CLIENT_KEY} = ''; +# $ENV{OCS_DB_SSL_CLIENT_CERT} = ''; +# $ENV{OCS_DB_SSL_CA_CERT} = ''; + $ENV{OCS_DB_SSL_MODE} = 'SSL_MODE_PREFERRED'; + + + + SetHandler perl-script + PerlResponseHandler Plack::Handler::Apache2 + PerlSetVar psgi_app 'REST_API_LOADER_PATH' + diff --git a/nightly/scripts/docker-entrypoint.sh b/nightly/scripts/docker-entrypoint.sh index a7155b6..479294e 100755 --- a/nightly/scripts/docker-entrypoint.sh +++ b/nightly/scripts/docker-entrypoint.sh @@ -35,6 +35,19 @@ if [ ! -f /etc/httpd/conf.d/z-ocsinventory-server.conf ]; then sed -i 's/OCS_SSL_COM_MODE/'"$OCS_SSL_COM_MODE"'/g' /etc/httpd/conf.d/z-ocsinventory-server.conf fi +# Configure zz-ocsinventory-restapi file +if [ ! -f /etc/httpd/conf.d/zz-ocsinventory-restapi.conf ]; then + cp /tmp/conf/ocsinventory-restapi.conf /etc/httpd/conf.d/zz-ocsinventory-restapi.conf + sed -i 's/DATABASE_SERVER/'"$OCS_DB_SERVER"'/g' /etc/httpd/conf.d/zz-ocsinventory-restapi.conf + sed -i 's/DATABASE_PORT/'"$OCS_DB_PORT"'/g' /etc/httpd/conf.d/zz-ocsinventory-restapi.conf + sed -i 's/DATABASE_NAME/'"$OCS_DB_NAME"'/g' /etc/httpd/conf.d/zz-ocsinventory-restapi.conf + sed -i 's/DATABASE_USER/'"$OCS_DB_USER"'/g' /etc/httpd/conf.d/zz-ocsinventory-restapi.conf + sed -i 's/DATABASE_PASSWD/'"$OCS_DB_PASS"'/g' /etc/httpd/conf.d/zz-ocsinventory-restapi.conf + sed -i 's/OCS_SSL_ENABLED/'"$OCS_SSL_ENABLED"'/g' /etc/httpd/conf.d/zz-ocsinventory-restapi.conf + sed -i 's/REST_API_PATH/\/usr\/local\/share\/perl5/g' /etc/httpd/conf.d/zz-ocsinventory-restapi.conf + sed -i 's/REST_API_LOADER_PATH/\/usr\/local\/share\/perl5\/Api\/Ocsinventory\/Restapi\/Loader.pm/g' /etc/httpd/conf.d/zz-ocsinventory-restapi.conf +fi + # Configure ocsinventory-reports file if [ ! -f /etc/httpd/conf.d/ocsinventory-reports.conf ]; then cp /tmp/conf/ocsinventory-reports.conf /etc/httpd/conf.d/ocsinventory-reports.conf @@ -86,4 +99,4 @@ if [ -f "$APACHE_PID_FILE" ]; then rm "$APACHE_PID_FILE" fi -/usr/sbin/httpd -DFOREGROUND \ No newline at end of file +/usr/sbin/httpd -DFOREGROUND