Customers that are running NMIS and OMK applications on CentOS 6 may want to move them to CentOS 7. Will article will present one method of accomplishing this.
The CentOS 7 server will run the same version of NMIS and OMK applications that are currently running on the CentOS 6 server.
If selinux is enabled and at its default configuration during the NMIS installation perl modules will be installed with the wrong path. This will cause NMIS to be non-functional. |
1) Install prerequisite packages
After installing CentOS 7 on the new server install the following packages:
You can run the two commands below to accomplish this.
yum update yum install -y perl perl-core rrdtool rrdtool-perl libpng12 rsync ntp |
Install the correct NMIS and OMK application versions on the new CentOS 7 server. If you no longer have the installer packages for the correct versions contact support@opmantek.com and someone will provide them.
# Opmantek NMIS 8 downloads # Update with newest links # And Comment out what modules you do not need https://dl-nmis.opmantek.com/nmis8.7.2-1.run https://dl-omk.opmantek.com/opCharts-Linux-x86_64-3.6.0.run https://dl-omk.opmantek.com/opReports-Linux-x86_64-3.5.0.run https://dl-omk.opmantek.com/opConfig-Linux-x86_64-3.6.0.run https://dl-omk.opmantek.com/opEvents-Linux-x86_64-2.7.0.run https://dl-omk.opmantek.com/opFlow-Linux-x86_64-3.2.0.run https://dl-omk.opmantek.com/opHA-Linux-x86_64-2.3.0.run |
#!/bin/bash # Stop services service opeventsd stop upgrade_list=$(</installs/omk8_list.txt) echo "starting downloads based on upgrade_list" sleep 2 while read LINE; do `wget ${LINE}`; done < /installs/omk8_list.txt echo "Downloads complete" sleep 2 echo "##########" echo "#" echo "# Starting installs" echo "#" echo "##########" while IFS=/ read -r var1 var2 var3 var4 var5; do #echo $var1 #echo $var2 #echo $var3 echo "Running install on $var4" `sh ./$var4 -- -y` sleep 2 #echo $var5 done < /installs/omk8_list.txt echo "##########" echo "#" echo "# Installs Complete" echo "#" echo "##########" |
In order for the export script to work a valid ssh key must be installed in the /root/.ssh/authorized_keys file.
Before running this script below, ensure there is enough space on the target machine to transfer all of the data. Running df -h in the terminal will show you the free disc space. |
Run the following script on the old CentOS 6 server. The following six variables at the top of the script will need to be modified to suit your environment.
Please take into consideration that the new environment may store the database in different folders. Check your "dbpath" in your servers (/etc/mongod.conf).
#!/bin/sh TARGET=192.168.10.67 NODEDATA=/usr/local/nmis8/database/nodes SOURCE_MONGODBLOCATION=/data SOURCE_MONGODBDIR=mongodb DESTINATION_MONGODBLOCATION=/var/lib DESTINATION_MONGODBDIR=mongo NODES=$(fgrep "'name'" /usr/local/nmis8/conf/Nodes.nmis | awk '{print $3}' | tr "\'" ' ' | tr ',' ' ' | awk '{print $1}') # copy mongodb rsync --progress -av $SOURCE_MONGODBLOCATION/$SOURCE_MONGODBDIR $TARGET:$DESTINATION_MONGODBLOCATION/. ssh $TARGET "chown -R mongod:mongod $DESTINATION_MONGODBLOCATION/$DESTINATION_MONGODBDIR" for NODE in $NODES do # create a directory to store the node export JSON files. install -d $NODEDATA # export the node records from NMIS /usr/local/nmis8/admin/node_admin.pl act=export node=$NODE file=$NODEDATA/$NODE.json # get the node data to the target server rsync -avz -e ssh $NODEDATA/$NODE $TARGET:$NODEDATA/ rsync -avz -e ssh /usr/local/nmis8/database/nodes/$NODE $TARGET:/usr/local/nmis8/database/nodes scp /usr/local/nmis8/var/$NODE* $TARGET:/usr/local/nmis8/var # remotely add the nodes to the TARGET server ssh -t $TARGET "/usr/local/nmis8/admin/node_admin.pl act=create node=$NODE file=$NODEDATA/$NODE.json" done # Update the group list with any new groups ssh -t $TARGET "/usr/local/nmis8/admin/grouplist.pl patch=true" # copy NMIS/OMK config rsync --progress -av /usr/local/nmis8/models root@$TARGET:/usr/local/nmis8/. rsync --progress -av /usr/local/nmis8/conf root@$TARGET:/usr/local/nmis8/. rsync --progress -av /usr/local/omk/conf root@$TARGET:/usr/local/omk/. # Fix file permissions ssh $TARGET /usr/local/nmis8/admin/fixperms.pl |
Update your /etc/mongod.conf to reflect the current configuration from your old CentOS 6 Server, note that the dbpath could be different from your old environment.
After Files are migrated run "/usr/local/nmis8/bin/nmis.pl type=config" to fix any errors that could be there from migration.
In Config.nmis located at /usr/local/nmis8/conf put the correct hostname for 'server_name' attribute.
Restart the following services:
Log into the GUI on the new CentOS 7 server and verify each application is functional and presents data from before the migration.