Code Monkey home page Code Monkey logo

OpenL2M

OpenL2M, Open Layer 2 Management, is an open source network device management application designed to allow users with minimal training to perform a set of basic configuration changes on network devices, with a focus on port or interface (i.e Layer 2) changes. It does so by providing a consistent web interface and API for device management, independent of the underlying switch vendor.

OpenL2M attempts to address the needs of distributed IT groups managing parts of a shared distributed layer 2 ("switching") network.

While primarily intended to manage network switches, OpenL2M can handle any device that has some sort of network API (e.g. SSH, Netconf, REST, etc.)

For Quick Testing: download the Docker Compose test config at https://github.com/openl2m/docker-test

Features:

  • Light or Dark theme.
  • pluggable backend to support new vendor devices, allowing easy development
  • vendor-agnostic REST API. Automate changes from scripts, etc.
  • enable/disable interface
  • change vlan on interface
  • enable/disable PoE
  • change description
  • see ethernet addresses, lldp neighbors, and download to spreadsheet
  • add, edit or delete vlans on devices
  • run configurable pre-defined 'static' commands on the device
  • run configurable pre-defined 'form input' commands on the device
  • and more...

Devices Supported:

  • Aruba AOS-CX switches (REST API(preferred), or SNMP)
  • HP/Aruba Procurve switches (via SNMP)
  • HPE Comware switches (via SNMP)
  • Juniper devices (via Junos PyEz API)
  • Cisco switches (some, via SNMP)
  • Generic SNMP devices
  • Any device supported by the Netmiko library (see SSH devices)
  • Most devices supported by Napalm (read-only)

See the documentation for more information.

What's New:

Highlights:

v3.2 adds a Dark Theme. It improves web accessibility and provides a more modern look, and more consistent layout through the use of Bootstrap 5.3. A docker compose config for developing is provided.

v3.1 upgrades to Django 5.0, and adds a docker-compose config for quickly testing OpenL2M in a container.

v3.0 adds a vendor-agnostic REST API for remote scripting and automation.

v2.4 adds vlan add/edit/delete for all supported devices, and upgrades the Django framework to v4.2 LTS

v2.3 adds support for Juniper Junos devices.

v2.2 adds support for Aruba AOS-CX switches.

v2.1 implements command templates, a controlled method to give users variable input on commands. This gives tremendous flexibility in giving users in a controlled fashion more visibility into the device. See the Configuration section for more.

v2.0 implements a new plug-in API that will allow for easy add-on drivers. This makes is easy to add support for any kind of network device, whether the interface is SSH, REST, NetConf, or other methods. See the documentation for more information. We now support Aruba AOS-CX and Juniper devices through custom drivers.

Why OpenL2M:

OpenL2M was developed in an attempt to learn Django, and in the hope that it may some day provide a possibly useful application for distributed "basic" network switch management. It is developed to address the needs of distributed IT groups managing parts of a distributed layer 2 ("switching") network.

License:

OpenL2M is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.

OpenL2M includes software from third parties, which are either licensed under the GPL or compatible licenses. See individual source files for more detailed copyright notices.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenL2M. If not, see http://www.gnu.org/licenses/.

Documentation:

See the following OpenL2M documentation:

  • at https://openl2m.readthedocs.io/
  • after install, from the application menu, or at /static/docs/html/
  • in the ./docs/ source folder (in RST format, buildable with Sphinx, e.g. run 'make html'. This will build in ./django/project-static/docs/html/

Screenshots:

Login Window: Shows configurable login, top and bottom banners.

Login Window

Devices Menu: Shows the groups and devices you can access

Devices Menu

Dark Mode Devices Menu: Dark Mode view of the groups and devices you can access

Dark Mode Devices Menu

Interfaces Menu: Edit a single interface at a time

Interface Menu

Bulk-Edit Menu: Edit multiple interfaces at once

Bulk Edit Menu

Commands Menu: Run pre-defined commands on the device

Commands Menu

Command Templates Menu: Run pre-defined commands with user-input on the device

Commands Menu

VLAN Edit Menu: Add, Rename, or Delete vlans

VLAN Edit Menu

Downloads:

OpenL2M sources can be found at https://github.com/openl2m/openl2m

Enjoy!

OpenL2M User's Projects

api_client icon api_client

Simple Python library that implements an example client class to talk to the OpenL2M REST api.

docker-dev icon docker-dev

Docker Compose to assist in development of OpenL2M

docker-test icon docker-test

Docker Compose configuration to quickly test OpenL2M (NOT for production use!)

openl2m icon openl2m

OpenL2M is a Layer 2 device management application, written in Django. It is designed to allow users with minimal training to perform a set of basic configuration changes on network devices. OpenL2M provides a device-independent WebUI and REST API.

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.