From d1bec1d31d2a84f34f7be4a41d92c0705b0b8286 Mon Sep 17 00:00:00 2001 From: Charly Gregoire Date: Mon, 8 Nov 2021 16:30:00 +0000 Subject: [PATCH] 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