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.
For information about installing and configuration of an eNMS server, please look at their installation documentation here.
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".
- 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.
- 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.
- 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.
- 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.
- 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.
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.
For a high level overview of eNMS, explore their video below.
Updated over 2 years ago