First we need to install RANCID, Subversion (that will be used a VCS) and Apache 2 to have a WebSVN instance available.
apt-get update apt-get install rancid subversion apache2 php5
In the /etc/rancid/rancid.conf
file do the following things:
CVSROOT=$BASEDIR/CVS; export CVSROOT
by
CVSROOT=$BASEDIR/SVN; export CVSROOT
RCSSYS=cvs; export RCSSYS
by
RCSSYS=svn; export RCSSYS
LIST_OF_GROUPS="gravitons"
gravitons
will be a directory where the devices configurations will be stored.
Initialize the SVN repository where the changes will be tracked:
su - rancid ./bin/rancid-cvs
The gravitons
directory will be created.
RANCID does not support Cisco Small Business devices by default. It requires some hacks to be able to backup the changes of a SG series devices (for example). As root run the following commands:
cd /var/lib/rancid/bin wget 'https://raw.github.com/chrpinedo/rancid-cisco-sb/master/src/csblogin' -O csblogin wget 'https://raw.github.com/chrpinedo/rancid-cisco-sb/master/src/csbrancid' -O csbrancid chmod a+x csb*
Also edit the rancid-fe
in /var/lib/rancid/bin
to add the following item in the %vendortable
dictionary.
'cisco-sb' => 'csbrancid'
Using the rancid user, create the .cloginrc
file in the home directory and add the following lines to backup a Small Business device:
add user sw0.gravitons.in noc add password sw0.gravitons.in noc-password add autoenable sw0.gravitons.in 1 add method sw0.gravitons.in ssh add userprompt sw0.gravitons.in {"User Name:"}
Also add the following line to the router.db
file:
sw0.gravitons.in:cisco-sb:up
If the device was a more classic Cisco device we would have used something like this in the .clogin
file:
add method sw0.gravitons.in ssh add user sw0.gravitons.in noc add password sw0.gravitons.in noc-password enable-password
And this in the router.db
file:
sw0.gravitons.in:cisco:up
With WebSVN it will be possible to have a user-friendly view of what RANCID backups and records.
cd /var/www wget 'http://websvn.tigris.org/files/documents/1380/49056/websvn-2.3.3.tar.gz' tar xf websvn-2.3.3.tar.gz mv websvn-2.3.3 svn cp /var/www/svn/include/distconfig.php /var/www/svn/include/config.php chown -R www-data:www-data /var/www/svn
Now the following line needs to be added to the WebSVN configuration to see the repository.
$config->addRepository(‘RANCID Backup’, ‘file:///var/lib/rancid/SVN/’);
Eventually, Apache needs to be able to read the files in the SVN repository.
chown -R rancid:www-data /var/lib/rancid/SVN