RANCID Integration

Installation

Install RANCID and Subversion:

apt-get install rancid subversion

We need to add a group for rancid to store configs in:

nano /etc/rancid/rancid.conf

Add this line:

LIST_OF_GROUPS="observium"

Change these two lines:

CVSROOT=$BASEDIR/CVS; export CVSROOT
RCSSYS=cvs; export RCSSYS

to:

CVSROOT=$BASEDIR/SVN; export CVSROOT
RCSSYS=svn; export RCSSYS

Run this command to create the folder structure:

su - rancid
/var/lib/rancid/bin/rancid-cvs

Create a .cloginrc file:

nano /var/lib/rancid/.cloginrc

Here is an example that works for Mikrotik devices:

add user * rancid
add password * password
add identity * /var/lib/rancid/.ssh/id_dsa
add method * ssh
add noenable * {1}

Make sure you have your public key credentials in /var/lib/rancid/.ssh/

Test it out on your router! (In this example, your router is named myrouter)

/var/lib/rancid/bin/mtlogin myrouter

Add www-data to the rancid group:

 usermod -a -G rancid www-data

Observium Integration

Configuration

You can either change the below settings in the config.php or via the web-based configuration accessible from the right hand "cog" menu in the Observium web interface.

Update the Observium config so it knows how to use RANCID:

 nano /opt/observium/config.php

Add these lines:

 $config['rancid_configs'][]              = "/var/lib/rancid/observium/configs/";
 $config['rancid_ignorecomments']        = 0;

If you're running RANCID v3.x, add the following line :

 $config['rancid_version'] = '3';

Restart apache:

 /etc/init.d/apache2 restart

You should now see a config tab in Observium, with your configs there!

Observium has a script which can generate the router.db config based on what’s in Observium.

 rancid@observium:/opt/observium/scripts$ php generate-rancid.php 
 # do not edit file directly!
 #RANCID router.db autogenerated by 
 router:mikrotik:up

Dump it in the RANCID config file with this command:

 php /opt/observium/scripts/generate-rancid.php > /var/lib/rancid/observium/router.db

Automation

We can add this in cron to do this automatically.

If you want rancid to back up daily, then add something like this to cron:

 0 5 * * * /var/lib/rancid/bin/rancid-run
 #hourly router dump
 50 23 * * * /usr/bin/find /var/lib/rancid/logs -type f -mtime   +2 -exec rm {} \;