[192041] in North American Network Operators' Group

home help back first fref pref prev next nref lref last post

Re: A perl script to convert Cisco IOS/Nexus/ASA configurations to

daemon@ATHENA.MIT.EDU (Lee)
Tue Oct 11 09:48:20 2016

X-Original-To: nanog@nanog.org
In-Reply-To: <1520bc48-0580-7611-bbb2-f770489d7b87@west.net>
From: Lee <ler762@gmail.com>
Date: Tue, 11 Oct 2016 09:48:17 -0400
To: Jay Hennigan <jay@west.net>
Cc: nanog@nanog.org
Errors-To: nanog-bounces@nanog.org

On 10/10/16, Jay Hennigan <jay@west.net> wrote:
> On 10/6/16 1:26 PM, Jesse McGraw wrote:
>> Nanog,
>>
>>     (This is me scratching an itch of my own and hoping that sharing it
>> might be useful to others on this list.  Apologies if it isn't)
>>
>>   When I'm trying to comprehend a new or complicated Cisco router,
>> switch or firewall configuration an old pet-peeve of mine is how
>> needlessly difficult it is to follow deeply nested logic in route-maps,
>> ACLs, QoS policy-maps etc etc
>>
>> To make this a bit simpler I=E2=80=99ve been working on a perl script to=
 convert
>> these text-based configuration files into HTML with links between the
>> different elements (e.g. To an access-list from the interface where it=
=E2=80=99s
>> applied, from policy-maps to class-maps etc), hopefully making it easier
>> to to follow the chain of logic via clicking links and using the forward
>> and back buttons in your browser to go back and forth between command
>> and referenced list.
>
> Way cool. Now to hook it into RANCID....

It looks like what I did in 2.3.8 should still work - control_rancid
puts the diff output into $TMP.diff so add this bit:
grep "^Index: " $TMP.diff | awk '/^Index: configs/{
 if ( ! got1 ) { printf("/usr/local/bin/myscript.sh "); got1=3D1; }
 printf("%s ", $2)
 }
 END{ printf("\n") }
' >$TMP.doit
/bin/sh $TMP.doit >$TMP.out
if [ -s $TMP.out ] ; then
   .. send mail / whatever
rm $TMP.doit $TMP.out
fi

Regards,
Lee

home help back first fref pref prev next nref lref last post