-
Notifications
You must be signed in to change notification settings - Fork 1
Description
I want to work on implementing a web interface to NAPALM (and netmiko too).
It can be a showcase of napalm for network engineers who are not familiar with python / ansible.
What I will use: Flask, SQLalchemy, Bootstrap, jQuery and maybe some other javascript libraries if need be.
Main functionnalities:
-
a web page to manage devices.
Device = IP address + operating system + username + password (credentials to log in to the device) and optionally, hostname + secret password.
A device can be created from a form manually, or by importing an excel file that contains those data, or by importing a .csv file.
Devices can be deleted as well. -
a web page for sending script with netmiko
The user can choose a driver, choose the global_delay_factor, and a protocol (SSH or telnet).
Then, he writes the script in a text area and the script is sent to the device. A script can be a Jinja2 template, and it will be possible for the user to import a .yaml file to turn the j2 template into a real script. -
a web page for napalm getters
the user selects a device and one or more getters, the request is sent to the device and the result is displayed in the webinterface by pretty printing the dictionnary. -
a web page for napalm configuration functions
just like with netmiko, the user can write a script (possibly a j2 template along with a yaml file) and send it to the device by using configure_merge or configure_replace. It will also be possible to rollback. -
a web page to configure a "napalm daemon", that will give the possibility to do certain things on a regular basis, for instance retrieve the configuration of the device every day, or retrieve a given set of getters every hour and store the result somewhere, that sort of things.
the project will be available here: https://github.com/afourmy/e-napalm (I started two days ago as the whole things takes a few days)
Any comment / feedback / ideas on how to improve it or what else can be done is more than welcome !
Note: it won't be finished before Monday as I don't have access to my lab this we, which I need to test it on real devices.