[192051] in North American Network Operators' Group
Re: A perl script to convert Cisco IOS/Nexus/ASA configurations to
daemon@ATHENA.MIT.EDU (Jason Hellenthal)
Wed Oct 12 09:28:49 2016
X-Original-To: nanog@nanog.org
From: Jason Hellenthal <jhellenthal@dataix.net>
In-Reply-To: <CAD8GWstmg-sO_DAbnGgAwgeTZsiiRu=bxFQCy5bSc4n99Apm1g@mail.gmail.com>
Date: Wed, 12 Oct 2016 08:28:44 -0500
To: Lee <ler762@gmail.com>
Cc: nanog@nanog.org
Errors-To: nanog-bounces@nanog.org
Give these a shot. https://github.com/jlmcgraw/networkUtilities
I know J could use a little feedback on those as well but all in all =
they are pretty solid.
> On Oct 11, 2016, at 08:48, Lee <ler762@gmail.com> wrote:
>=20
> On 10/10/16, Jay Hennigan <jay@west.net> wrote:
>> On 10/6/16 1:26 PM, Jesse McGraw wrote:
>>> Nanog,
>>>=20
>>> (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)
>>>=20
>>> 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
>>>=20
>>> 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.
>>=20
>> Way cool. Now to hook it into RANCID....
>=20
> 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
>=20
> Regards,
> Lee
--=20
Jason Hellenthal
JJH48-ARIN