[192061] in North American Network Operators' Group
Re: A perl script to convert Cisco IOS/Nexus/ASA configurations to
daemon@ATHENA.MIT.EDU (Lee)
Thu Oct 13 12:38:58 2016
X-Original-To: nanog@nanog.org
In-Reply-To: <590522cc-6a52-f152-50eb-e13d7e2442f7@gmail.com>
From: Lee <ler762@gmail.com>
Date: Thu, 13 Oct 2016 12:38:55 -0400
To: Jesse McGraw <jlmcgraw@gmail.com>
Cc: nanog@nanog.org
Errors-To: nanog-bounces@nanog.org
On 10/13/16, Jesse McGraw <jlmcgraw@gmail.com> wrote:
> Lee,
>
> Check out the setup.sh script, hopefully it does everything necessary
> to get the script working on a Debian-derived Linux system
I'm using Windows + Cygwin; maybe it's just that I don't have them
installed, but there is no sudo or apt so setup.sh isn't going to work
for me. So while I was interested in seeing what this bit looked like
> If you run it against multiple configuration files at once it will also a=
ttempt to link
> between them when applicable (e.g. BGP neighbors, route next hops, interf=
aces
> on the same subnet etc).
I'm not willing to take any more time on this.
I appreciate all the people who've tried to help but at least for now, I'm =
done.
Thanks,
Lee
>
> I've attempted to make the only globally-installed dependencies be cpanm
> and carton. Once those are installed it uses carton to install the
> dependencies locally
>
>
> On 10/12/2016 07:59 PM, Lee wrote:
>> On 10/12/16, Jason Hellenthal <jhellenthal@dataix.net> wrote:
>>> 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.
>> Where does one get Modern/Perl.pm ?
>>
>> Can't locate Modern/Perl.pm in @INC (you may need to install the
>> Modern::Perl module) (@INC contains: /tmp/local/lib/perl5
>> /usr/lib/perl5/site_perl/5.22/i686-cygwin-threads-64int
>> /usr/lib/perl5/site_perl/5.22
>> /usr/lib/perl5/vendor_perl/5.22/i686-cygwin-threads-64int
>> /usr/lib/perl5/vendor_perl/5.22
>> /usr/lib/perl5/5.22/i686-cygwin-threads-64int /usr/lib/perl5/5.22 .)
>> at /tmp/iosToHtml.pl line 87.
>> BEGIN failed--compilation aborted at /tmp/iosToHtml.pl line 87.
>>
>> Lee
>>
>>
>>
>>>> On Oct 11, 2016, at 08:48, Lee <ler762@gmail.com> wrote:
>>>>
>>>> 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 scrip=
t to
>>>>>> convert
>>>>>> these text-based configuration files into HTML with links between th=
e
>>>>>> 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 comman=
d
>>>>>> 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
>>>
>>> --
>>> Jason Hellenthal
>>> JJH48-ARIN
>> .
>>
>
>