Parallel opReports Solution: New platform opReports 3.5.2 running in parallel with old platform OMK Apps including opReports 3.2.0
Introduction
Opmantek applications' released on or after 30 Sept 2020 will work on Opmantek's latest and fastest platform, however, earlier installed products are incompatible with this new platform.
This solution was needed as NMIS 8.6.7G1, opReports 3.2.0 and other Opmantek applications released prior to 30 September were installed on server(s).
However, opReports 3.5.2 was needed to improve the Node Health Report prior to opReports 3.5.2
Install parallel opReports 3.5.2 to /opt/omk/
opReports 3.2.0 and other Opmantek applications released prior to 30 September were installed on server(s) at /usr/local/omk/
opReports 3.5.2 was then installed at /opt/omk/ as follows:
- Move the tar archive opReports-3.5.2-standalone.tar.gz, provided by Opmantek for this purpose, to /opt/ directory on server to be deployed to;
Then deploy:
/opt/cd/opt/# sudo mv /tmp/opReports-3.5.2-standalone.tar.gz /opt/
# uncompress to ./omk/ and set owner and group on directory structuresudotar-xzvf opReports-3.5.2-standalone.tar.gzsudochown-R root:nmis/opt/omk/
# verifycdomk/ls-lahtotal 52Kdrwxr-xr-x. 9 root nmis 4.0K Mar 30 00:36 .drwxr-xr-x. 4 root root 4.0K Mar 30 20:06 ..drwxrwsr-x. 3 root nmis 4.0K Mar 29 02:21 bindrwxr-xr-x. 3 root nmis 4.0K Mar 30 00:06 confdrwxr-xr-x. 4 root nmis 4.0K Mar 30 16:57install-rw-r--r--. 1 root nmis 16K Mar 29 22:09 LICENSEdrwxr-xr-x. 2 root nmis 4.0K Mar 30 00:40 logdrwxr-xr-x. 3 root nmis 4.0K Mar 29 22:09 publicdrwxr-xr-x. 8 root nmis 4.0K Mar 29 22:42 templatesdrwxr-xr-x. 3 root nmis 4.0K Mar 30 00:40 var
# Move scripts needed by opReports from the ./bin/install/ directory to the ./bin/ directory:
sudo mv bin/install/oplicense-cli-standalone.* bin/
sudo mv bin/install/opreports-cli-standalone.* bin/
sudo mv bin/install/opreports-scheduler-standalone.* bin/
# verify bin directoryls-lah bin/total 136Mdrwxrwsr-x. 3 root nmis 4.0K Mar 29 02:21 .drwxr-xr-x. 9 root nmis 4.0K Mar 30 00:36 ..drwxr-sr-x. 2 root nmis 4.0K Mar 29 02:21installlrwxrwxrwx. 1 root nmis 23 Mar 30 20:06 oplicense-cli-standalone.exe -> opmantek-standalone.exelrwxrwxrwx. 1 root nmis 23 Mar 30 20:06 oplicense-cli-standalone.pl -> opmantek-standalone.exe-rwxr-xr-x. 1 root nmis 136M Mar 26 01:53 opmantek-standalone.exelrwxrwxrwx. 1 root nmis 23 Mar 30 20:06 opmantek-standalone.pl -> opmantek-standalone.exelrwxrwxrwx. 1 root nmis 23 Mar 30 20:06 opreports-cli-standalone.exe -> opmantek-standalone.exelrwxrwxrwx. 1 root nmis 23 Mar 30 20:06 opreports-cli-standalone.pl -> opmantek-standalone.exelrwxrwxrwx. 1 root nmis 23 Mar 30 20:06 opreports-scheduler-standalone.exe -> opmantek-standalone.exelrwxrwxrwx. 1 root nmis 23 Mar 30 20:06 opreports-scheduler-standalone.pl -> opmantek-standalone.exe
# cleansudorm../opt/opReports-3.5.2-standalone.tar.gz
# copy our proxy config into position:# If Debian or Ubuntu we would now:
## [ -d "/etc/apache2/conf.d" ] && sudo cp install/05omk-standalone-proxy.conf /etc/apache2/conf.d/#OR# # newer apache: different location, and use a2enmod# [ -d "/etc/apache2/conf-available" ] && sudo cp install/05omk-standalone-proxy.conf /etc/apache2/conf-available/# [ -d "/etc/apache2/conf-available" ] && sudo a2enmod proxy# [ -d "/etc/apache2/conf-available" ] && sudo a2enmod proxy_http# [ -d "/etc/apache2/conf-available" ] && sudo a2enmod headers# [ -d "/etc/apache2/conf-available" ] && sudo a2enconf 05omk-standalone-proxy.conf## sudo service apache2 restart## If Centos or RHEL:#sudocpinstall/05omk-standalone-proxy.conf/etc/httpd/conf.d/#sudoservice httpd restart
# set up the opReports 3.5.2 cron-jobs# first we verify current status:sudols-lah/etc/cron.d/total 36Kdrwxr-xr-x. 2 root root 4.0K Mar 30 21:04 .drwxr-xr-x. 75 root root 4.0K Mar 30 17:59 ..-rw-r--r--. 1 root root 113 Aug 23 2016 0hourly-rw-r--r--. 1 root root 1.6K Mar 29 00:24 nmis-rw-r--r--. 1 root root 168 Mar 29 00:55 oplicense-rw-r--r--. 1 root root 164 Mar 29 00:55 opreports-rw-------. 1 root root 108 Jan 26 2017 raid-check-rw-------. 1 root root 235 Jun 26 2018 sysstat
# oplicense-standalone cron filesudocpinstall/cron.d/oplicense-standalone/etc/cron.d/
# we replace the opReports 3.2.0 cron file with the opReports 3.5.2 copy - that executes opReports 3.5.2 executable:sudomv-f/etc/cron.d/opreports/usr/local/omk/install/cron.d/opreports_WAS_ACTIVEsudocp-finstall/cron.d/opreports/etc/cron.d/opreports# verify:sudocat/etc/cron.d/opreports# this cron schedule runs the opReports scheduler every 5 minutes## m h dom month dow user command*/5* * * * root/opt/omk/bin/opreports-scheduler-standalone.exe
# cleanup by disabling opReports 3.2.0 cli executablesudomv/usr/local/omk/bin/opreports-cli.exe/usr/local/omk/bin/opreports-cli.exe.DISABLEDsudorm/usr/local/omk/bin/opreports-cli.pl
# cleanup by disabling opReports 3.2.0 scheduler executablesudomv/usr/local/omk/bin/opreports-scheduler.exe/usr/local/omk/bin/opreports-scheduler.exe.DISABLEDsudorm/usr/local/omk/bin/opreports-scheduler.pl
# activate license at /opt/omk/conf/opLicense.nmis
# run the opreports 3.5.2 scheduler manually to verify all oksudo/opt/omk/bin/opreports-scheduler-standalone.exe --debug=1
# run the opreports 3.5.2 cli manually to verify all ok - note we are generating report at opReports 3.2.0 directory /usr/local/omk/var/reports/on-demand/sudo./bin/opreports-cli-standalone.exetype=config start_date="now - 7 days"end_date="now"node_regex=.*format=htmlformat=csvformat=xlsx output_dir=/usr/local/omk/var/reports/on-demand/debug=1
Food for thought: Experimental (untested) suggestions
Implement the omkd-standalone service on port 8043:
# set up init.d service (opReports-3.5.2-standalone.tar.gz was built on a VM with systemd# - hence the '.bak' in filename at this stage: install/omkd-standalone.init.d.bak)# - we copy to /etc/init.d and rename file to omkd-standalonesudocpinstall/omkd-standalone.init.d.bak/etc/init.d/omkd-standalone# on Debian or Ubuntu we would now:# sudo update-rc.d omkd-standalone defaults# but we are on Centos, so:sudochkconfig --add omkd-standalonesudochkconfig omkd-standalone on
sudoservice omkd-standalone startThis suggestion requires implementation of omkd-standalone service on port 8043 as per Point 1. immediately above.
This suggestion should integrate omkd.service and omkd-standalone service better - with opReports 3.5.2 seamlessly replacing opReports 3.2 in the GUI.
Replaces /etc/apache2/conf.d/05omk-standalone-proxy.conf with this /etc/apache2/conf.d/03omk-standalone-proxy.confsudorm/etc/apache2/conf.d/05omk-standalone-proxy.conf
# this is one copy and paste command - up to 'EOF' about 3 lines from the end of this code block:#sudocat>/etc/httpd/conf.d/03omk-standalone-proxy.conf <<EOF## For more information on the listed Apache features please consult:## http://httpd.apache.org/docs/
# Don't forget to restart the daemon if you make changes to this configuration file1# apachectl restart
<IfModule mod_proxy.c>ProxyRequests off
<IfModule mod_headers.c># if you are using the Opmantek applications behind an ssl-terminating apache vhost,# then you should adjust the vhost configuration to add this header but with# protocol "https".# The Opmantek applications are location- and protocol-independent in almost all cases.RequestHeadersetX-Forwarded-Proto"http"</IfModule>
<Location"/omk/opReports">ProxyPass http://localhost:8043/omk/opReportsretry=5ProxyPassReverse http://localhost:8043/omk/opReportsErrorDocument 503 '<html><head><meta http-equiv="refresh"content="60"></head><body><h1>Temporary Service Interruption</h1>The requested OMK page should be back soon. This page will automaticall$</Location>
<Location"/omk">ProxyPass http://localhost:8042/omkretry=5ProxyPassReverse http://localhost:8042/omkErrorDocument 503 '<html><head><meta http-equiv="refresh"content="60"></head><body><h1>Temporary Service Interruption</h1>The requested OMK page should be back soon. This page will automaticall$</Location>
# the first location directive only covers /omk and /omk/something,# not /omk.json<Location"/omk.json">ProxyPass http://localhost:8043/omk.json retry=5ProxyPassReverse http://localhost:8043/omk.json</Location>
<Location"/es/omk/opReports">ProxyPass http://localhost:8043/es/omk/opReportsretry=5ProxyPassReverse http://localhost:8043/es/omk/opReportsErrorDocument 503'<html><head><meta http-equiv="refresh" content="60"></head><body><h1>Temporary Service Interruption</h1>The requested OMK page should be back soon. This page will automatically reload in 60 seconds.</body></html>'</Location>
<Location"/en/omk/opReports">ProxyPass http://localhost:8043/en/omk/opReportsretry=5ProxyPassReverse http://localhost:8043/en/omk/opReportsErrorDocument 503'<html><head><meta http-equiv="refresh" content="60"></head><body><h1>Temporary Service Interruption</h1>The requested OMK page should be back soon. This page will automatically reload in 60 seconds.</body></html>'</Location>
<Location"/pt/omk/opReports">ProxyPass http://localhost:8043/pt/omk/opReportsretry=5ProxyPassReverse http://localhost:8043/pt/omk/opReportsErrorDocument 503'<html><head><meta http-equiv="refresh" content="60"></head><body><h1>Temporary Service Interruption</h1>The requested OMK page should be back soon. This page will automatically reload in 60 seconds.</body></html>'</Location>
<Location"/es">ProxyPass http://localhost:8042/esretry=5ProxyPassReverse http://localhost:8042/esErrorDocument 503'<html><head><meta http-equiv="refresh" content="60"></head><body><h1>Temporary Service Interruption</h1>The requested OMK page should be back soon. This page will automatically reload in 60 seconds.</body></html>'</Location>
<Location"/en">ProxyPass http://localhost:8042/enretry=5ProxyPassReverse http://localhost:8042/enErrorDocument 503'<html><head><meta http-equiv="refresh" content="60"></head><body><h1>Temporary Service Interruption</h1>The requested OMK page should be back soon. This page will automatically reload in 60 seconds.</body></html>'</Location>
<Location"/pt">ProxyPass http://localhost:8042/ptretry=5ProxyPassReverse http://localhost:8042/ptErrorDocument 503'<html><head><meta http-equiv="refresh" content="60"></head><body><h1>Temporary Service Interruption</h1>The requested OMK page should be back soon. This page will automatically reload in 60 seconds.</body></html>'</Location>
</IfModule>
EOF## this is the end of the above copy and paste command - which starts with 'sudo cat > /etc/httpd/conf.d/03omk-standalone-proxy.conf <<EOF'
# restart Apachesudoservice httpd restart
How opReports-3.5.2-standalone.tar.gz was built
opReports-3.5.2-standalone.tar.gz was created as follows:
- Install NMIS8 at /usr/local/nmis8 on a new VM with desired operating system created for the purpose of assembling opReports-3.5.2-standalone.tar.gz
- Install the needed version of opReports at the default install directory /usr/local/omk
In this case we checked out git tag opReports-3.5.2 and built standalone opReports:
sudo ./build/make_opreports_standalone_release 3.5.2 2
- The above command generates both the normal opReports installer runfile and leaves a directory on snotra3 /usr/local/opmojo_abi3/standalone_bin/ which contains the standalone binary and symbolic links in the snotra3 /usr/local/opmojo_abi3/standalone_bin/install/ directory that represent the standalone scripts that replace the /usr/local/opmojo_abi3/bin/ scripts in a standalone installation as set out in the next code box.
Create our custom install of opReports at /opt/omk
/opt/cd/optsudocp-rf/usr/local/omk/optsudochown-R root:nmis/opt/omk
cd/opt/omk/# make sure we are in /opt/omk/pwd/opt/omk
# clean upsudorm-rf ./{log/*,var/*,bin,lib/,script/,manifest,install.log}
# fetch specially built standalone binaries and uncompress to /opt/omk/bin-standalone/ directory - which we then rename to ./bin/ directory:sudotar-xzvf opReports-3.5.2-standalone_bin.tar.gzsudormopReports-3.5.2-standalone_bin.tar.gzsudomvstandalone_bin bin
# verify the files we are going to edit (change directory from /usr/local/omk to /opt/omk)sudogrep-arRnF"/usr/local/omk""/opt/omk"2>&1|grep -v /opt/omk/bin/install//opt/omk/install/opconfigd.service.bak:20:ExecStart=/usr/local/omk/bin/opconfigd.pl/opt/omk/install/cron.d/opreports:4:*/5* * * * root/usr/local/omk/bin/opreports-scheduler.exe/opt/omk/install/cron.d/oplicense:4:8 5 * * * root/usr/local/omk/bin/oplicense-cli.pl act=refresh_bundle_licenses quiet=1/opt/omk/install/opeventsd.service.bak:20:ExecStart=/usr/local/omk/bin/opeventsd.pl/opt/omk/install/opCommon.nmis:27:'<omk_base>'=>'/usr/local/omk',/opt/omk/install/omkd.init.d.bak:26:DAEMON=/usr/local/omk/script/opmantek.pl/opt/omk/install/omkd.service:20:ExecStart=/usr/local/omk/script/opmantek.pl -f -p/var/run/opmantek.exe.pid -r/opt/omk/install/omk-rotate.conf:8:/usr/local/omk/log/*.log/opt/omk/install/omk-rotate.conf:27:/usr/local/omk/log/snow_api.log/opt/omk/install/opflowd.service.bak:20:ExecStart=/usr/local/omk/bin/opflowd.pl/opt/omk/install/opchartsd.service.bak:20:ExecStart=/usr/local/omk/bin/opchartsd.pl/opt/omk/install/schedule/example_snapshot.json:6:"outputdir":"/usr/local/omk/var/reports",/opt/omk/install/schedule/health-businesshours.json:10:"outputdir":"/usr/local/omk/var/reports",/opt/omk/install/schedule/monthly_qos.json:11:"outputdir":"/usr/local/omk/var/reports",/opt/omk/install/schedule/weekend.json:11:"outputdir":"/usr/local/omk/var/reports",/opt/omk/install/schedule/daily.json:16:"outputdir":"/usr/local/omk/var/reports",/opt/omk/install/schedule/util_oneoff.json:12:"outputdir":"/usr/local/omk/var/reports",/opt/omk/conf/opeventsd.service:20:ExecStart=/usr/local/omk/bin/opeventsd.pl/opt/omk/conf/opconfigd.service:20:ExecStart=/usr/local/omk/bin/opconfigd.pl/opt/omk/conf/opCommon.nmis:35:'<omk_base>'=>'/usr/local/omk',/opt/omk/conf/opflowd.service:20:ExecStart=/usr/local/omk/bin/opflowd.pl/opt/omk/conf/opCommon.nmis.prepatch:27:'<omk_base>'=>'/usr/local/omk',/opt/omk/conf/omkd.service:20:ExecStart=/usr/local/omk/script/opmantek.pl -f -p/var/run/opmantek.exe.pid -r/opt/omk/conf/omk-rotate.conf:8:/usr/local/omk/log/*.log/opt/omk/conf/omk-rotate.conf:27:/usr/local/omk/log/snow_api.log/opt/omk/conf/opchartsd.service:20:ExecStart=/usr/local/omk/bin/opchartsd.pl/opt/omk/conf/omkd.init.d:26:DAEMON=/usr/local/omk/script/opmantek.pl/opt/omk/conf/schedule/example_snapshot.json:84:"outputdir":"/usr/local/omk/var/reports",/opt/omk/conf/schedule/health-businesshours.json:13:"outputdir":"/usr/local/omk/var/reports",/opt/omk/conf/schedule/monthly_qos.json:2:"outputdir":"/usr/local/omk/var/reports",/opt/omk/conf/schedule/weekend.json:25:"outputdir":"/usr/local/omk/var/reports",/opt/omk/conf/schedule/daily.json:28:"outputdir":"/usr/local/omk/var/reports"/opt/omk/conf/schedule/util_oneoff.json:10:"outputdir":"/usr/local/omk/var/reports",/opt/omk/templates/unauthorised.html.ep:37:% my $log_dir = $self->config->{'<omk_logs>'} ||"/usr/local/omk/logs/";/opt/omk/templates/unauthorised.html.ep:38:% my $conf_dir = $self->config->{'<omk_conf>'} ||"/usr/local/omk/conf";/opt/omk/templates/unauthorised.html.ep:39:% my $base_dir = $self->config->{'<omk_base>'} ||"/usr/local/omk/";/opt/omk/templates/exception.html.ep:38:% my $log_dir = $self->config->{'<omk_logs>'} ||"/usr/local/omk/logs/";/opt/omk/templates/exception.html.ep:39:% my $conf_dir = $self->config->{'<omk_conf>'} ||"/usr/local/omk/conf";/opt/omk/templates/exception.html.ep:40:% my $base_dir = $self->config->{'<omk_base>'} ||"/usr/local/omk/";/opt/omk/templates/not_found.production.html.ep:38:% my $log_dir = $self->config->{'<omk_logs>'} ||"/usr/local/omk/logs/";/opt/omk/templates/not_found.production.html.ep:39:% my $conf_dir = $self->config->{'<omk_conf>'} ||"/usr/local/omk/conf";/opt/omk/templates/not_found.production.html.ep:40:% my $base_dir = $self->config->{'<omk_base>'} ||"/usr/local/omk/";
# edit the above files:sudosh -c'grep -arRnFl "/usr/local/omk" "/opt/omk/" 2>&1|grep -v /opt/omk/bin/install/|while read LINE; do sed -i "s!/usr/local/omk!/opt/omk!g" "${LINE}";done;'
# verify all files have been edited - returns nothing if all references to /usr/local/omk have been corrected to /opt/omksudogrep-arRnF"/usr/local/omk""/opt/omk"2>&1|grep -v /opt/omk/bin/install/
# edit executable names in /opt/omk/install directory - our executables are all changed from old.pl to old-standalone.pl and old.exe to old-standalone.exe:# verify the files that may need editing:sudo grep -arRnF "/opt/omk" /opt/omk/install//opt/omk/install/opconfigd.service.bak:20:ExecStart=/opt/omk/bin/opconfigd.pl/opt/omk/install/cron.d/opreports:4:*/5* * * * root/opt/omk/bin/opreports-scheduler.exe/opt/omk/install/cron.d/oplicense:4:8 5 * * * root/opt/omk/bin/oplicense-cli.pl act=refresh_bundle_licenses quiet=1/opt/omk/install/opeventsd.service.bak:20:ExecStart=/opt/omk/bin/opeventsd.pl/opt/omk/install/opCommon.nmis:27:'<omk_base>'=>'/opt/omk/',/opt/omk/install/omkd.init.d.bak:26:DAEMON=/opt/omk/script/opmantek.pl/opt/omk/install/omkd.service:20:ExecStart=/opt/omk/script/opmantek.pl -f -p/var/run/opmantek.exe.pid -r/opt/omk/install/omk-rotate.conf:8:/opt/omk/log/*.log/opt/omk/install/omk-rotate.conf:27:/opt/omk/log/snow_api.log/opt/omk/install/opflowd.service.bak:20:ExecStart=/opt/omk/bin/opflowd.pl/opt/omk/install/opchartsd.service.bak:20:ExecStart=/opt/omk/bin/opchartsd.pl/opt/omk/install/schedule/example_snapshot.json:6:"outputdir":"/opt/omk/var/reports",/opt/omk/install/schedule/health-businesshours.json:10:"outputdir":"/opt/omk/var/reports",/opt/omk/install/schedule/monthly_qos.json:11:"outputdir":"/opt/omk/var/reports",/opt/omk/install/schedule/weekend.json:11:"outputdir":"/opt/omk/var/reports",/opt/omk/install/schedule/daily.json:16:"outputdir":"/opt/omk/var/reports",/opt/omk/install/schedule/util_oneoff.json:12:"outputdir":"/opt/omk/var/reports",
# edit the daemons at /opt/omk/install/*.service*sudosh -c"echo \"$(for DAEMON in 'opchartsd' 'opconfigd' 'opeventsd' 'opflowd'; do sudo sed -i 's!/'"${DAEMON}"'\.!/'"${DAEMON}"'-standalone.!g' "/opt/omk/install/${DAEMON}.service"*;done;)\";"# edit /opt/omk/install/omkd.servicesudosed-i -e's!/script/!/bin/!g'-e's!opmantek\.pl!opmantek-standalone.pl!g'-e's!opmantek\.exe!opmantek-standalone.exe!g'/opt/omk/install/omkd.service;sudosed-i -e's!/script/!/bin/!g'-e's!opmantek\.pl!opmantek-standalone.pl!g'-e's!opmantek\.exe!opmantek-standalone.exe!g'/opt/omk/install/omkd.init*;
# edit cronjobssudosed-i -e's!/opt/omk/bin/opreports-scheduler.pl!/opt/omk/bin/opreports-scheduler-standalone.pl!g'-e's!/opt/omk/bin/opreports-scheduler.exe!/opt/omk/bin/opreports-scheduler-standalone.exe!g'/opt/omk/install/cron.d/opreports;sudosed-i -e's!/opt/omk/bin/oplicense-cli.pl!/opt/omk/bin/oplicense-cli-standalone.pl!g'-e's!/opt/omk/bin/oplicense-cli.exe!/opt/omk/bin/oplicense-cli-standalone.exe!g'/opt/omk/install/cron.d/oplicense;
# prevent a clash on filenames where we can have two systemd services:sudomv/opt/omk/install/omkd.service/opt/omk/install/omkd-standalone.service
# prevent a clash on filenames where we can have two initd services:sudomv/opt/omk/install/omkd.init.d.bak/opt/omk/install/omkd-standalone.init.d.bak
# prevent a clash on filenames where we can have two cron files:sudomv/opt/omk/install/cron.d/oplicense/opt/omk/install/cron.d/oplicense-standalone
# verify our edits are complete:sudogrep-arRnF"/opt/omk"/opt/omk/install//opt/omk/install/opconfigd.service.bak:20:ExecStart=/opt/omk/bin/opconfigd-standalone.pl/opt/omk/install/cron.d/opreports:4:*/5* * * * root/opt/omk/bin/opreports-scheduler-standalone.exe/opt/omk/install/cron.d/oplicense-standalone:4:8 5 * * * root/opt/omk/bin/oplicense-cli-standalone.pl act=refresh_bundle_licenses quiet=1/opt/omk/install/opeventsd.service.bak:20:ExecStart=/opt/omk/bin/opeventsd-standalone.pl/opt/omk/install/opCommon.nmis:27:'<omk_base>'=>'/opt/omk/',/opt/omk/install/omkd-standalone.service:20:ExecStart=/opt/omk/bin/opmantek-standalone.pl -f -p/var/run/opmantek-standalone.exe.pid -r/opt/omk/install/omk-rotate.conf:8:/opt/omk/log/*.log/opt/omk/install/omk-rotate.conf:27:/opt/omk/log/snow_api.log/opt/omk/install/opflowd.service.bak:20:ExecStart=/opt/omk/bin/opflowd-standalone.pl/opt/omk/install/opchartsd.service.bak:20:ExecStart=/opt/omk/bin/opchartsd-standalone.pl/opt/omk/install/omkd-standalone.init.d.bak:26:DAEMON=/opt/omk/bin/opmantek-standalone.pl/opt/omk/install/schedule/example_snapshot.json:6:"outputdir":"/opt/omk/var/reports",/opt/omk/install/schedule/health-businesshours.json:10:"outputdir":"/opt/omk/var/reports",/opt/omk/install/schedule/monthly_qos.json:11:"outputdir":"/opt/omk/var/reports",/opt/omk/install/schedule/weekend.json:11:"outputdir":"/opt/omk/var/reports",/opt/omk/install/schedule/daily.json:16:"outputdir":"/opt/omk/var/reports",/opt/omk/install/schedule/util_oneoff.json:12:"outputdir":"/opt/omk/var/reports",
# yes, they are
# now some final fine tuning
# we want opCommon.nmis configurations to point at '/usr/local/omk/var/reports'# so that opreports-cli-standalone.exe and opreports-scheduler-standalone.exe generated reports are placed at this location:
sudo/usr/local/omk/bin/patch_config.exe -f/opt/omk/install/opCommon.nmis/directories/'<omk_reports>'='/usr/local/omk/var/reports'Operating on configfile:/opt/omk/install/opCommon.nmisPatching valuesforkeys/directories/<omk_reports>Patching element/directories/<omk_reports>, patch/directories/<omk_reports>
sudo/usr/local/omk/bin/patch_config.exe -f/opt/omk/conf/opCommon.nmis/directories/'<omk_reports>'='/usr/local/omk/var/reports'Operating on configfile:/opt/omk/conf/opCommon.nmisPatching valuesforkeys/directories/<omk_reports>Patching element/directories/<omk_reports>, patch/directories/<omk_reports>
sudo/usr/local/omk/bin/patch_config.exe -f/opt/omk/install/opCommon.nmis/directories/'<omk_reports_ondemand>'='/usr/local/omk/var/reports/on-demand'Operating on configfile:/opt/omk/install/opCommon.nmisPatching valuesforkeys/directories/<omk_reports_ondemand>Patching element/directories/<omk_reports_ondemand>, patch/directories/<omk_reports_ondemand>
sudo/usr/local/omk/bin/patch_config.exe -f/opt/omk/conf/opCommon.nmis/directories/'<omk_reports_ondemand>'='/usr/local/omk/var/reports/on-demand'Operating on configfile:/opt/omk/conf/opCommon.nmisPatching valuesforkeys/directories/<omk_reports_ondemand>Patching element/directories/<omk_reports_ondemand>, patch/directories/<omk_reports_ondemand>
# verify these changes to opCommon.nmis:sudogrep-arRnF"/var/reports"/opt/omk/{install,conf}/opCommon.nmis/opt/omk/install/opCommon.nmis:48:'<omk_reports>'=>'/usr/local/omk/var/reports',/opt/omk/install/opCommon.nmis:49:'<omk_reports_ondemand>'=>'/usr/local/omk/var/reports/on-demand',/opt/omk/conf/opCommon.nmis:48:'<omk_reports>'=>'/usr/local/omk/var/reports',/opt/omk/conf/opCommon.nmis:49:'<omk_reports_ondemand>'=>'/usr/local/omk/var/reports/on-demand',
# we want opCommon.nmis configurations to point at '/usr/local/omk/var/reports'sudo/usr/local/omk/bin/patch_config.exe -f/opt/omk/install/opCommon.nmis/directories/'<omk_schedule>'='/usr/local/omk/conf/schedule'Operating on configfile:/opt/omk/install/opCommon.nmisPatching valuesforkeys/directories/<omk_schedule>Patching element/directories/<omk_schedule>, patch/directories/<omk_schedule>
sudo/usr/local/omk/bin/patch_config.exe -f/opt/omk/conf/opCommon.nmis/directories/'<omk_schedule>'='/usr/local/omk/conf/schedule'Operating on configfile:/opt/omk/conf/opCommon.nmisPatching valuesforkeys/directories/<omk_schedule>Patching element/directories/<omk_schedule>, patch/directories/<omk_schedule>
# verify this change to opCommon.nmis:sudogrep-arRnF"/conf/schedule"/opt/omk/{install,conf}/opCommon.nmis/opt/omk/install/opCommon.nmis:50:'<omk_schedule>'=>'/usr/local/omk/conf/schedule',/opt/omk/conf/opCommon.nmis:50:'<omk_schedule>'=>'/usr/local/omk/conf/schedule',
# finally change our listen port for the omkd-standalone service|daemon from default 8042 to another available port, here 8043:
sudo/usr/local/omk/bin/patch_config.exe -f/opt/omk/install/opCommon.nmis/omkd/omkd_listen_port=8043Operating on configfile:/opt/omk/install/opCommon.nmisPatching valuesforkeys/omkd/omkd_listen_portPatching element/omkd/omkd_listen_port, patch/omkd/omkd_listen_port
sudo/usr/local/omk/bin/patch_config.exe -f/opt/omk/conf/opCommon.nmis/omkd/omkd_listen_port=8043Operating on configfile:/opt/omk/conf/opCommon.nmisPatching valuesforkeys/omkd/omkd_listen_portPatching element/omkd/omkd_listen_port, patch/omkd/omkd_listen_port
# verify these changes to opCommon.nmis:sudogrep-arRnF"omkd_listen_port"/opt/omk/{install,conf}/opCommon.nmis/opt/omk/install/opCommon.nmis:118:'omkd_listen_port'=>'8043',/opt/omk/conf/opCommon.nmis:123:'omkd_listen_port'=>'8043',
# rename install/04omk-proxy.conf and change port to 8043:sudomv-finstall/04omk-proxy.confinstall/05omk-standalone-proxy.confsudosed-i's~localhost:8042/~localhost:8043/~g'install/05omk-standalone-proxy.conf# confirm:cat install/05omk-standalone-proxy.conf
# ensure groups are still correct on omk directory structurecd/opt/omk/sudochown-R root:nmis/opt/omk
# confirmls-lah .total 52Kdrwxr-xr-x 9 root nmis 4.0K Mar 30 07:36 .drwxr-xr-x 5 root staff 4.0K Mar 30 07:48 ..drwxrwsr-x 3 root nmis 4.0K Mar 29 09:21 bindrwxr-xr-x 3 root nmis 4.0K Mar 30 07:06 confdrwxr-xr-x 4 root nmis 4.0K Mar 30 23:57install-rw-r--r-- 1 root nmis 16K Mar 30 05:09 LICENSEdrwxr-xr-x 2 root nmis 4.0K Mar 30 07:40 logdrwxr-xr-x 3 root nmis 4.0K Mar 30 05:09 publicdrwxr-xr-x 8 root nmis 4.0K Mar 30 05:42 templatesdrwxr-xr-x 3 root nmis 4.0K Mar 30 07:40 var
# final clean:sudorm-rf/opt/omk/var/reports/*sudorm-rf/opt/omk/var/opreports/*
# create the tar archive:
cd /opt/sudotar-czvf opReports-3.5.2-standalone.tar.gz omk
# confirmls-lah opReports-3.5.2-standalone.tar.gz-rw-r--r-- 1 root root 72M Mar 30 07:49 opReports-3.5.2-standalone.tar.gz