nanog mailing list archives

Re: Templating/automating configuration


From: James Bensley <jwbensley () gmail com>
Date: Wed, 7 Jun 2017 20:29:39 +0100

On 7 June 2017 at 19:52, Brian Knight <ml () knight-networks com> wrote:
The import process to the database runs directly on our rancid server, reading the downloaded configs out of the 
appropriate directory within rancid. Most of our gear is Cisco, so the ciscoconfparse module for Python helps a lot 
with organizing and querying the config.  From there, the config is parsed for key items like interface name, 
description, configured bandwidth, etc., and that info is then added or updated as necessary in the database.



Because it's dependent on rancid, there is some lag time between when a change is made and when the database gets 
updated, so we still strongly encourage running the pre-config checks for new circuits.  But with PyEZ, it looks like 
you easily could, after grabbing that lock, validate the existing config before pushing down new config.  Lots of 
possibilities there.  I'm envious that you have a vendor-written Python module as a choice!
...

Or, at least, rebuild the existing configs based on the new source of truth, so that subsequent config parsing 
conforms to a single standard.

Cisco IOS and IOS-XE have config locks on the CLI, as well as
automatic configuration rollbacks and the ability to generate a config
diff on deice. For some reason lots of people seem to forget/ignore
this.

If you are using NAPALM then I believe you can also implement this
through NAPALM.

Cheers,
James.


Current thread: