HomeGuidesAPI Reference
GuidesAPI ReferenceGitHubAirheads Developer CommunityLog In

NAPALM with eNMS

Using NAPALM as an abstraction layer provides the opportunity for Network Management Systems (NMS) to easily interact with several different switch platforms, regardless of vendor. eNMS is a vendor agnostic NMS designed around this idea, using NAPALM to help build workflow-based network automation solutions. eNMS can be downloaded from their GitHub here.

18971897

📘

For information about installing and configuration of an eNMS server, please look at their installation documentation here.

eNMS Services

eNMS leverages multiple different automation libraries and scripts to perform automation tasks known as a "service". These services can be combined to create an automation "workflow".

19131913

Example Workflow of Services

Example of Creating a NAPALM Service in eNMS

  • Click Automation on the left navbar, then click Services to display the list of Services available.
  • Near the top right of the Services page, click the dropdown menu and change it from 'Ansible Playbook' to NAPALM getters, then click the + button next to it.
19201920

Services Page

  • First, give the Service a name. Optionally, there are other settings below that can be adjusted, such as 'Maximum number of runs' or 'Time between retries'. Click on Step 2 at the top to move on.
961961

Create a New NAPALM_Getters_Service

  • In Step 2, click on the dropdown menu under Getters in the Main Parameters box. Select a few of the supported AOS-CX functions, such as 'Interfaces, 'Interface IP', and MAC address. In the NAPALM Parameters box, click the dropdown under Driver and change it to 'aoscx'. In the Connection Parameters box, select 'Custom Credentials' under Credentials and specify the Custom Username and Custom Password. Checkmark 'Start New Connection' and 'Close Connection' then scroll to the top and click Step 3.
981981

Specify the NAPALM methods

982982

Input NAPALM Driver and Connection parameters

  • In Step 3, specify the Run method to 'Run the service once per device' and then click on the empty devices bar to bring up a list of devices. Click any AOS-CX devices from the inventory that is listed. Alternatively, the Device Query bar can be used to specify which devices this Service will run against. Optionally, Iteration options and properties can be adjusted below. Scroll to the top and click Step 4.
956956

Add the devices

  • Step 4 is where optional Python postprocessing scripts can be added. There is also a section for validation, and notification options upon completion. Click Save at the top to save the Service.

Running an eNMS Example Service

On the Services page, the new Service can be run with the green Play button, or added to a Workflow.
When running a Service, the results are displayed as a JSON breakdown for each individual switch that was ran against.

18171817

eNMS Video Overview

For a high level overview of eNMS, explore their video below.