All Projects → eNMS-automation → Enms

eNMS-automation / Enms

Licence: gpl-3.0
An enterprise-grade vendor-agnostic network automation platform.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Enms

Core
CFEngine Community
Stars: ✭ 377 (-36.64%)
Mutual labels:  infrastructure-as-code, configuration-management
Salt
Software to automate the management and configuration of any infrastructure or application at scale. Get access to the Salt software package repository here:
Stars: ✭ 12,086 (+1931.26%)
Mutual labels:  infrastructure-as-code, configuration-management
Envizon
network visualization & vulnerability management/reporting
Stars: ✭ 382 (-35.8%)
Mutual labels:  network-visualization
Aws
A collection of bash shell scripts for automating various tasks with Amazon Web Services using the AWS CLI and jq.
Stars: ✭ 493 (-17.14%)
Mutual labels:  infrastructure-as-code
Awesome Saltstack
🧂 A collaborative curated list of awesome SaltStack resources, tutorials and other salted stuff.
Stars: ✭ 430 (-27.73%)
Mutual labels:  configuration-management
Terratag
Terratag is a CLI tool that enables users of Terraform to automatically create and maintain tags across their entire set of AWS, Azure, and GCP resources
Stars: ✭ 385 (-35.29%)
Mutual labels:  infrastructure-as-code
Koanf
Light weight, extensible configuration management library for Go. Built in support for JSON, TOML, YAML, env, command line, file, S3 etc. Alternative to viper.
Stars: ✭ 450 (-24.37%)
Mutual labels:  configuration-management
Centraldogma
Highly-available version-controlled service configuration repository based on Git, ZooKeeper and HTTP/2
Stars: ✭ 378 (-36.47%)
Mutual labels:  configuration-management
Aconfmgr
A configuration manager for Arch Linux
Stars: ✭ 576 (-3.19%)
Mutual labels:  configuration-management
Tads Boilerplate
Terraform + Ansible + Docker Swarm boilerplate = DevOps on 🔥🔥🔥 | Infrastructure as Code
Stars: ✭ 424 (-28.74%)
Mutual labels:  infrastructure-as-code
Goss
Quick and Easy server testing/validation
Stars: ✭ 4,550 (+664.71%)
Mutual labels:  infrastructure-as-code
Agileconfig
基于.NET Core开发的轻量级分布式配置中心 / .NET Core light configuration server
Stars: ✭ 403 (-32.27%)
Mutual labels:  configuration-management
Punchcard
Type-safe AWS infrastructure.
Stars: ✭ 387 (-34.96%)
Mutual labels:  infrastructure-as-code
Terracognita
Reads from existing Cloud Providers (reverse Terraform) and generates your infrastructure as code on Terraform configuration
Stars: ✭ 452 (-24.03%)
Mutual labels:  infrastructure-as-code
Conform
Easy, powerful, and extendable configuration tooling for releases.
Stars: ✭ 384 (-35.46%)
Mutual labels:  configuration-management
Nacos Spring Boot Project
Nacos ECO Project for Spring Boot
Stars: ✭ 508 (-14.62%)
Mutual labels:  configuration-management
Openwisp Controller
Network and WiFi controller: provisioning, configuration management and updates, (pull via openwisp-config or push via SSH), x509 PKI management and more. Mainly OpenWRT, but designed to work also on other systems.
Stars: ✭ 377 (-36.64%)
Mutual labels:  configuration-management
Howtheyaws
A curated collection of publicly available resources on how technology and tech-savvy organizations around the world use Amazon Web Services (AWS)
Stars: ✭ 389 (-34.62%)
Mutual labels:  infrastructure-as-code
Terraform Provider Kubernetes Alpha
A Terraform provider for Kubernetes that uses dynamic resource types and server-side apply. Supports all Kubernetes resources.
Stars: ✭ 438 (-26.39%)
Mutual labels:  infrastructure-as-code
Awesome Network Stuff
Resources about network security, including: Proxy/GFW/ReverseProxy/Tunnel/VPN/Tor/I2P, and MiTM/PortKnocking/NetworkSniff/NetworkAnalysis/etc。More than 1700 open source tools for now. Post incoming.
Stars: ✭ 578 (-2.86%)
Mutual labels:  network-visualization

eNMS

An enterprise-grade vendor-agnostic network automation platform.


Branch Status Coverage Documentation Python Style JavaScript Style License
master Build Status (master branch) Coverage (master branch) Documentation (master branch) PEP8
Code style: black
Code style: google
Code style: prettier
License
develop Build Status (develop branch) Coverage (develop branch) Documentation (develop branch)

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 by an external event (REST call, Syslog message, etc).

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. You can click on a device to display its properties, configuration, or start an SSH terminal session. Colocated devices can be grouped into geographical sites (campus, dacacenter, ...), and displayed logically with a force-directed layout.

Network View Sites View
Geographical Logical

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.

  • eNMS can be configured as a Syslog server, and rules can be created for syslog messages to trigger the execution of a service.

  • Docs: Scheduling, REST API


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.6+ (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)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].