...
- Install NMIS8 at /usr/local/nmis8 on a new VM with desired operating system created for the purpose of assembling opReports-3.4.1-standalone.tar.gz
- Install the needed version of opReports at the default install directory /usr/local/omk
Create our custom install of opReports at /opt/omk
Code Block title /opt/ cd /opt sudo cp -rf /usr/local/omk /opt sudo chown -R root:nmis /opt/omk cd /opt/omk/ # make sure we are in /opt/omk/ pwd /opt/omk # clean up sudo rm -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: sudo tar -xzvf opReports-3.4.1-bin-standalone.tar.gz sudo rm opReports-3.4.1-bin-standalone.tar.gz sudo mv bin-standalone bin # verify the files we are going to edit (change direcvtorydirectory from /usr/local/omk to /opt/omk) sudo grep -arRnF "/usr/local/omk" /opt/omk/ /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: sudo sh -c 'grep -arRnFl "/usr/local/omk" /opt/omk/|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/omk sudo grep -arRnF "/usr/local/omk" /opt/omk/ # edit executasble 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* sudo sh -c "echo \"$(for DAEMON in 'opchartsd' 'opconfigd' 'opeventsd' 'opflowd'; do sudo sed -i 's!/'"${DAEMON}"'\.!/'"${DAEMON}"'-standalone.!g' "/opt/omk/install/${DAEMON}.service"*;done;)\";" /opt/omk/install/omkd.service sudo sed -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; sudo sed -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 cronjobs sudo sed -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; sudo sed -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: sudo mv /opt/omk/install/omkd.service /opt/omk/install/omkd-standalone.service # prevent a clash on filenames where we can have two initd services: sudo mv /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: sudo mv /opt/omk/install/cron.d/oplicense /opt/omk/install/cron.d/oplicense-standalone # verify our edits are complete: sudo grep -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 config file: /opt/omk/install/opCommon.nmis Patching values for keys /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 config file: /opt/omk/conf/opCommon.nmis Patching values for keys /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 config file: /opt/omk/install/opCommon.nmis Patching values for keys /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 config file: /opt/omk/conf/opCommon.nmis Patching values for keys /directories/<omk_reports_ondemand> Patching element /directories/<omk_reports_ondemand>, patch /directories/<omk_reports_ondemand> # verify these changes to opCommon.nmis: sudo grep -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 config file: /opt/omk/install/opCommon.nmis Patching values for keys /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 config file: /opt/omk/conf/opCommon.nmis Patching values for keys /directories/<omk_schedule> Patching element /directories/<omk_schedule>, patch /directories/<omk_schedule> # verify this change to opCommon.nmis: sudo grep -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=8043 Operating on config file: /opt/omk/install/opCommon.nmis Patching values for keys /omkd/omkd_listen_port Patching 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=8043 Operating on config file: /opt/omk/conf/opCommon.nmis Patching values for keys /omkd/omkd_listen_port Patching element /omkd/omkd_listen_port, patch /omkd/omkd_listen_port # verify these changes to opCommon.nmis: sudo grep -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: sudo mv -f install/04omk-proxy.conf install/05omk-standalone-proxy.conf sudo sed -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 structure cd /opt/omk/ sudo chown -R root:nmis /opt/omk # confirm ls -lah ./omk/ total 52K drwxr-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 bin drwxr-xr-x 3 root nmis 4.0K Mar 30 07:06 conf drwxr-xr-x 4 root nmis 4.0K Mar 30 23:57 install -rw-r--r-- 1 root nmis 16K Mar 30 05:09 LICENSE drwxr-xr-x 2 root nmis 4.0K Mar 30 07:40 log drwxr-xr-x 3 root nmis 4.0K Mar 30 05:09 public drwxr-xr-x 8 root nmis 4.0K Mar 30 05:42 templates drwxr-xr-x 3 root nmis 4.0K Mar 30 07:40 var # final clean: sudo rm -rf /opt/omk/var/reports/* sudo rm -rf /opt/omk/var/opreports/* # create the tar archive: sudo tar -czvf opReports-3.4.1-standalone.tar.gz omk # confirm ls -lah opReports-3.4.1-standalone.tar.gz -rw-r--r-- 1 root root 72M Mar 30 07:49 opReports-3.4.1-standalone.tar.gz