A few months ago, I've shared here the first version of eNMS. In case you've missed it, the idea was to implement a web-based GUI for the most commonly used libraries for network automation, namely Netmiko (both for pulling data and configuring a device), and NAPALM (data retrieval with NAPALM getters, and configuration management with NAPALM load/commit/rollback functions).
I've been working on it actively for the past few months and I'm glad to release a new version: eNMS 2.0 (github)
The most significant changes are:
-
eNMS now supports sending Ansible playbooks.
-
The introduction of workflows. Scripts (netmiko, napalm or ansible scripts) can be combined together to form a "graph of scripts". Rather than a long explanation, here are two examples (double-click on a script to find out what it does): a workflow using Netmiko configuration and file transfer functions to perform an OS upgrade, and another workflow combining NAPALM and Netmiko to commit a configuration, run some checks afterwards and rollback if the state of the device is not what's expected.
-
Before, network visualization (display the network on a world map or via a force-directed drawing algorithm) and network automation (scheduling netmiko/napalm scripts) were independent features. Now, all the automation is done graphically, i.e you can schedule a script/workflow by selecting the target devices directly from the graphical view (from the world map, or the force-based graph drawing).
-
A task can be scheduled to run a command periodically and store the outputs of a command in the database. eNMS then creates a line-by-line diff of the outputs between any two versions. You all know network configuration backup tools like Rancid and Oxidized: eNMS can do the same thing, but for virtually any command.
Check out the github readme where I provide a step-by-step explanation of the process (network creation, visualization, script and workflow creation, and graphical scheduling) with a video for each step. At each step, the readme also links to the online demo where you can try everything I've described by yourself.
Note: Works for any OS (windows/linux/mac), any version of python from 2.7 to 3.6. Contributions are most welcome ! We are on the networktocode Slack, channel #enms if you have questions, requests, want to contribute or simply discuss the project.
Other useful links: Online demo, Documentation
No comments:
Post a Comment