Purpose
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.
Assumptions
The CentOS 7 server will run the same version of NMIS and OMK applications that are currently running on the CentOS 6 server.
Prepare Target CentOS 7 Server
Install prerequisite packages
After installing CentOS 7 on the new server install the following packages.
- yum update
- yum install perl
- yum intstall perl-core
- yum install rrdtool
- yum install rrdtool-perl
- yum install libpng12
- yum install rsync
- yum install ntp
Install NMIS and OMK Applications
Gather the installation packages for the correct versions and stage them in the /tmp directory of the new CentOS 7 server. If you no longer have the installer packages for the correct version contact support@opmantek.com and someone will provide it.
Install SSH Keys
In order for the export script to work a valid ssh key must be installed in the /root/.ssh/authorized_keys file.
Shutdown Related Services
On both the old CentOS 6 and the new CentOS 7 servers shutdown the following services:
- opeventsd
- opconfigd
- opflowd
- omkd
- mongod
Run Export Script
Run the following script on the old CentOS 6 server. The following three variables at the top of the script will need to be modified to suit your environment.
TARGET : Ip address of the new CentOS 7 server.
NODEDATA: Full path to the directory that contains NMIS node files.
MONGODBLOC: Full path to the Mongo database files.
#!/bin/sh TARGET=192.168.10.67 NODEDATA=/usr/local/nmis8/database/nodes mongodbLoc=/var/lib NODES=$(fgrep "'name'" /usr/local/nmis8/conf/Nodes.nmis | awk '{print $3}' | tr "\'" ' ' | tr ',' ' ' | awk '{print $1}') ### copy mongodb rsync --progress -av $mongodbLoc/mongo $TARGET:$mongodbLoc/. ssh $TARGET 'chown -R $mongodbLoc/mongo' 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/* $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