Discussion:
[rancid] Cisco GSS 4492 Config Fetch...
Chris Weakland
2012-03-28 18:48:51 UTC
Permalink
I had some time today and added a routine into my rancid config to gather
my Cisco GSS's running config and gslb config. Here is how you add it:

Edit file: rancid-fe

In the %vendortable section near the top of the file add the following:

'gss' => 'gssrancid',

Here is some context to help you:

'foundry' => 'francid',
'gss' => 'gssrancid',
'hitachi' => 'htrancid',

In the same directory as your rancid-fe file, you have a file called
"rancid". Copy this file to a new file named gssrancid.

Edit file: gssrancid

Add the follwing code:

# This routine parses "show gslb-config"
sub ShowGslbConfig {
print STDERR " In ShowGslbConfig: $_" if ($debug);
ProcessHistory("","","","!Begin GSLB Config\n!\n");
while (<INPUT>) {
tr/\015//d;
last if (/^$prompt/);
next if (/^(\s*|\s*$cmd\s*)$/);
return(1) if /^\s*\^\s*$/;
return(1) if /Line has invalid autocommand /;
return(1) if /(Invalid input detected|Type help or )/;
return(-1) if (/command authorization failed/i);
# the pager can not be disabled per-session on the PIX
if (/^(<-+ More -+>)/) {
my($len) = length($1);
s/^$1\s{$len}//;
}

ProcessHistory("","","","$_");
}
ProcessHistory("","","","\n!\n!End GSLB Config\n!\n");
return(0);
}

I added the above section right above this line:

# This routine processes a "write term"
sub WriteTerm {


Lastly, in the commandtable section add the following line:

{'show gslb-config' => 'ShowGslbConfig'},

Again here is some context to guide you:

# {'show debug' => 'ShowDebug'},
{'show gslb-config' => 'ShowGslbConfig'},
{'show running-config' => 'WriteTerm'},

Optionally, you can rem out the `show debug` as it does not work at all on
the GSS and it makes your rancid config look ugly.

Here is a diff of my gssrancid vs rancid:

~/bin$ diff gssrancid rancid
1525,1548d1524
< # This routine parses "show gslb-config"
< sub ShowGslbConfig {
< print STDERR " In ShowGslbConfig: $_" if ($debug);
< ProcessHistory("","","","!Begin GSLB Config\n!\n");
< while (<INPUT>) {
< tr/\015//d;
< last if (/^$prompt/);
< next if (/^(\s*|\s*$cmd\s*)$/);
< return(1) if /^\s*\^\s*$/;
< return(1) if /Line has invalid autocommand /;
< return(1) if /(Invalid input detected|Type help or )/;
< return(-1) if (/command authorization failed/i);
< # the pager can not be disabled per-session on the PIX
< if (/^(<-+ More -+>)/) {
< my($len) = length($1);
< s/^$1\s{$len}//;
< }
<
< ProcessHistory("","","","$_");
< }
< ProcessHistory("","","","\n!\n!End GSLB Config\n!\n");
< return(0);
< }
<
1946,1947c1922,1923
< # {'show debug' => 'ShowDebug'},
< {'show gslb-config' => 'ShowGslbConfig'},
---
{'show debug' => 'ShowDebug'},
{'more system:running-config' => 'WriteTerm'}, # ASA/PIX
Enjoy,
Chris

Loading...