eNMS: a vendor-agnostic Network Management System using NAPALM for network automation

  • By Antoine Fourmy
  • Posted January 11, 2018

During the Hackathon, I worked on eNAPALM, a simple web interface to Netmiko and NAPALM. The idea was to provide a way to use netmiko and napalm for those who don’t have any Python or Ansible knowledge.

After a few weeks, I decided to start all over from scratch and created a whole new project designed to be a Network Management System focused on network visualization and automation: eNMS.

Hackathon 2017 Summary

Over a week ago we celebrated our second Hackathon. We held a few presentations to kick off the event (thanks to all presenters) and then we spent the entire weekend hacking.

A continuation I want to highlight some of the projects people worked on:

  • afourmy worked on e-napalm an awesome web UI for napalm and netmiko. I totally recommend this one.
  • ogenstad worked on automating the process of turning ansible “docstrings” into actual documentation. You can see the result here
  • tcaiazza started working on a napalm-yang parser for NXOS. It’s still WIP but I am sure he will finish it soon ;)
  • ktbyers started working on a testing environment to test config operations. Testing these operations has always been difficult so having this environment is certainly going to be useful.
  • itdependsnetworks worked on many things, most notably on bringing a set of helper functions to standardize interface names across commands.
  • dbarrosop built a POC for an automation framework built on python to be used in python. You can find the project here

In addition there were many bugfixes and minor enhancements so big kudos to all those contributors that keep squashing bugs making automation more stable and reliable to everybody.

In summary, it was a lot of fun and lots of things happened. It’s also interesting to see new and interesting projects being built on top of napalm.

Winner: We’d like to thank all the contributors for helping out and for participating but as we announced previously we actually have a prize for one of them and we’d like you to help us decide who to give it to. So, please, head to this github issue and help us deciding. Next week’s Monday we will close the polls and announce the winner.

Thank you all again and happy automation!

Hackathon 2017 Details

Intro

It’s been a year since our last hackathon so it’s time for a second take. This year, in addition to giving you a NAPALM update and present a couple of new projects, we will also have a few talks from various other projects leveraging on napalm and a talk from Gabriele Gerbino who was the unofficial winner for the non-existent contest we had in the hackathon we held last year :)

Code of Conduct

Be nice, respectful and have fun!

Agenda

All times are in UTC

Location

We will meet online. All the presentations will be streamed and recorded on Youtube and interactions will be done via slack and github.

  • Live Feed: https://www.youtube.com/watch?v=8TZbKKf2gAc
  • Slack: https://networktocode.herokuapp.com/, channel #napalm-hackathon-2017
  • Repo with ideas: https://github.com/napalm-automation/hackathon-2017/issues Feel free to add your own!

Prize

So last year we didn’t really organized any contest as we didn’t have prizes and we didn’t really thought about it. However, this year we have a prize :)

Who?

We (Kirk, Mircea and David) will probably decide ourselves but we will let the community influence our decision so make sure you make it clear ;)

When?

We will deliberate during Monday and Tuesday and probably write an announcement during the week.

What?

Andrew Dampf on behalf of Linode is donating a year of service for the winner :)

Reunification first release announcement

Just a quick announcement. As previously discussed we have been working in the past few weeks in reunifying all the drivers into a single repo. We are happy to announce the first official release has just been pushed to pip. This new version, tagged 2.0.0, should work exactly like the latest individual release for each driver.

There are a few administrative things to deal with but other than that this version should be ready for mass consumption. The only disclaimer to add is that the community drivers (FortiOS, Pluribus, PANOS, MikroTik, VyOS and cumulus) have not yet been migrated as we are trying to get the community more involved on those. We will prepare some documentation and prepare an announcement for those in the upcoming weeks.

As always, if you have any comment/concern or find any issues don’t hesitate to let us know.

Reunification beta announcement

As we announced in a previous post we have unified all of our core drivers under the same napalm repo. Right now, we have released a beta version which we hope you can help us testing. To do so just run the following pip command:

pip install --pre napalm  # --pre is only necessary while this is in beta

Summer updates for napalm-ansible

  • By Napalm Automation
  • Posted September 18, 2017

Ansible doesn’t have one of the best user experiences out there when it comes to installing third party modules. The process usually involves cloning a repo and updating ansible.cfg to make sure the cloned repo is in the path. This is not particularly terrible but it becomes an issue when you come to the realization you have to make sure yourself that the repo stays up to date, which means you have to keep track of every potential repo yourself and that you have to understand how each potential project that provides third party modules prefers to deal with versioning for ansible modules.

Using napalm-logs for event-driven network automation and orchestration

After months of continuous work, we are thrilled to announce the first major release of napalm-logs.

What is napalm-logs

napalm-logs is open source software acting as a daemon, which listens for syslog messages from network devices and normalizes them into a vendor-agnostic shape. Unlike the rest of the libraries maintained by the NAPALM automation community, napalm-logs does not connect to the device to retrieve information, but rather receives messages.

YANG for dummies

I originally wrote this post as part of the documentation of napalm-yang but then I realized this post could be interesting for the general audience and not exclusively for people willing to try out that project.

This post tries to explain some of the general ideas of YANG, why is it interesting, how you can use it to describe data in a very convoluted but yet flexible and powerful way and, more interestingly, how it can be used.

Note that this is just an introduction, if you want to fully understand how YANG works I’d recommend reading RFC6020. For napalm-yang, I’d recommend checking this tutorial.

What is YANG

The tl;dr; version is that YANG is a data modelling language. It is used to describe how data is supposed to look. YANG is not XML or JSON, YANG is a language of it’s own and it only describes data models. For individual instances of the data JSON or XML can be used.

NAPALM Hackathon 2017 announcement

  • By Napalm Automation
  • Posted August 10, 2017

Last year around November we organized our very first NAPALM hackathon. To be honest with you, it turned out to be a lot of fun and we did some good stuff. For example, the validate functionality, was initially developed by Gabriele during the hackathon.

As the project continues growing and we get more and more people interested in it we thought it was about time to organize a second edition of the hackathon. The plan is to gather online during the weekend of the 17th of November, have a few presentations and hack at will.

  • When: From November 17th 5.00pm UTC to November 19th 7.00pm UTC
  • Where: slack#napalm-hackathon-2017 (channel is already open so feel free to join)
  • Who: No matter who you are, your skills or your level of expertise, you are invited to join us. We will gladly help you dealing with the idiosyncrasies of git, python or those network operating systems we all love to hate.
  • What: Whatever you want. Feel free to show up with your own project and work solo or with someone else, to work on existing issues or to ask if someone wants help. We will also try to highlight existing issues or ideas we think are cool and useful so you have something to chose from.
  • Prizes: This is a community effort and we have no fundings but we will come up with some form of gamification and give virtual badges, achievements and publish the results to show our gratitude and help you boosting your career ;)

    I love the smell of automation in the morning

Reunification

  • By Napalm Automation
  • Posted July 20, 2017

We are evaluating the possibility to merge all the drivers back together. This may or may not have any impact on you but we wanted to share the background of this story, the reasoning for doing that, the technical challenges and solutions for doing so, the potential implications for users and the proposed timeline for it.

The proposed date for the reunification is October 20th 2017.