Tuesday, October 23, 2018

eNMS v3: a python web app designed for building workflow-based network automation solutions

eNMS is a web application (Flask/Gunicorn/Nginx/PostgreSQL/Vault) designed to build workflow-based network automation solutions. It has evolved a lot over the past few months, and I'm happy to announce the release of eNMS v3 !

Here's a brief summary of what was recently introduced:

  • Custom services: most of you are building python scripts to perform simple network automation tasks. eNMS can integrate your script into the web UI, just like any of the "default" netmiko/napalm/ansible-based services. If your script takes input parameters, eNMS will automatically generate a Flask form in the web UI. In a way, eNMS is now like Ansible Tower, except that, instead of having a workflow of playbooks, you can build workflows off your own python scripts.

  • Your network topology can now be automatically imported from OpenNMS (REST API) or Netbox (with pynetbox).

  • eNMS is now configured to use a PostgreSQL database + a Hashicorp Vault to store sensitive information such as network credentials.

  • Web SSH: you can now SSH to your switches/routers directly from the web UI with a web-based SSH solution. For instance, from the geographical view, you can click on a device, then click on "Connect" to open a web SSH terminal. This works even if your network is behind a jumpserver, as long as eNMS is installed on the jumpserver. Optionally, eNMS can automatically authenticate you (credentials are fetched from the Vault)

  • Event-driven automation: Services and workflows can be triggered by an external event in two ways: via a call to the REST API with the name of the service/workflow, or upon receiving a Syslog message that matches a preconfigured rule.

  • There is a dockerfile to start the application as a container, and a docker-compose file to start it with PostgreSQL database and Nginx web server.

Main features for the next release:

  • Notification system for when a service ends: mail-based (eNMS will send an email with the logs, what went wrong, etc) or slack-based (slack notification)

  • Interface with Gitlab (push the logs of a service to gitlab, etc)

  • RADIUS + Active Directory authentication (currently has only TACACS+)

More

You can have a look at:



No comments:

Post a Comment