Giter Site home page Giter Site logo

rajathgaddi / enms Goto Github PK

View Code? Open in Web Editor NEW

This project forked from enms-automation/enms

0.0 0.0 0.0 159.94 MB

A vendor-agnostic enterprise-grade network automation platform.

Home Page: http://enms.readthedocs.io/en/latest/base/general.html

License: GNU General Public License v3.0

Python 53.00% Shell 0.93% JavaScript 26.31% HTML 17.04% CSS 2.72%

enms's Introduction

eNMS

An enterprise-grade vendor-agnostic network automation platform.

Introduction

eNMS is a vendor-agnostic NMS designed for building workflow-based network automation solutions.

eNMS

It encompasses the following aspects of network automation:

  • Configuration Management Service: Backup with Git, change and rollback of configurations.
  • Validation Services: Validate data about the state of a device with Netmiko and NAPALM.
  • Ansible Service: Store and run Ansible playbooks.
  • REST Service: Send REST calls with variable URL and payload.
  • Python Script Service: Any python script can be integrated into the web UI. eNMS will automatically generate a form in the UI for the script input parameters.
  • Workflows: Services can be combined together graphically in a workflow.
  • Scheduling: Services and workflows can be scheduled to start at a later time, or run periodically with CRON.
  • Event-driven automation: Services and workflows can be triggered from the REST API.

Architecture

eNMS System Overview


Main features

1. Network creation

Your network topology can be created manually or imported from an external Source of Truth (OpenNMS, LibreNMS, or Netbox). Once created, it is displayed in a sortable and searchable table. A dashboard provides a graphical overview of your network with dynamic charts.

Inventory Dashboard
Inventory Dashboard

2. Network visualization

eNMS can display your network on a world map (Google Map or Open Street Map). Each device is displayed at its GPS coordinates. Network topology diagrams can be created using devices and links from inventory, and adding labels for clarity.

Geographical View Network Builder
Geographical View Network Builder

3. Service creation

eNMS comes with a number of "default services" leveraging libraries such as ansible, requests, netmiko, napalm to perform simple automation tasks. However, absolutely any python script can be turned into a service. If your python script takes input parameters, eNMS will automatically generate a form in the web UI.

Services can be combined into a workflow.

Workflow Builder

5. Configuration Management

eNMS can be used as a device configuration backup tool, like Oxidized/Rancid, with the following features:

  • Poll network devices and store the latest configuration in the database
  • Store any operational data that can be retrieved from the device CLI (e.g show version, get facts etc.)
  • Search for any text or regular-expression in all configurations
  • Download device configuration to a local text file
  • Use the REST API support to return a specified device’s configuration
  • Export all configurations to a remote Git repository (e.g. Gitlab)
  • View git-style differences between various revisions of a configuration
Search Configuration Compare Configuration
Search History

6. Event-driven automation

While services can be run directly and immediately from the UI, you can also schedule them to run at a later time, or periodically by defining a frequency or a CRON expression. All scheduled tasks are displayed in a calendar.

Calendar

Services can also be executed programmatically: eNMS has a REST API and a CLI interface that can be used to create, update and delete any type of objects, but also to trigger the execution of a service.


Getting started

Online content

You can follow us on Twitter or Linkedin to receive notifications about new training content and releases.

Training Videos

Podcasts

Quick Install

Install python 3.8+ (earlier versions not supported)
git clone https://github.com/afourmy/eNMS.git
cd eNMS
pip3 install -r build/requirements/requirements.txt
export FLASK_APP=app.py
flask run --host=0.0.0.0
Log in (default credentials: admin / admin)

enms's People

Contributors

afourmy avatar aaron-messick avatar stephan1373 avatar melewitz avatar mww012 avatar josephwhite13 avatar kirja16 avatar shorton3 avatar mishrob avatar longdn84 avatar cobbjb avatar codfant avatar rajathgaddi avatar oznetnerd avatar jberger avatar sliddjur avatar steve1373 avatar murrant avatar jackwa avatar jmcgrath207 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.