eNMS can be used as a device configuration backup utility, 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
- 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 and display the configuration
Inventory -> Configurations tab, the user can search for a specific
word, a string that is included in a pattern or a regular expression in
the current configuration of all devices, using the Configuration
column. eNMS will filter the list of devices based on whether the
current configuration of the device contains the search criteria. Select
the "Lines of Context" slider at the top of the UI to see up to 5
lines, before and after the specified word that was searched.
Click on the
Network Data button on the right of the screen to
display the device Configuration (or select Operational Data).
Click on the
Historic button on the right of the screen to
view the differences between various revisions of the device
Data Backup Services - Overview
Configurations are retrieved by
Data Backup services which:
- Fetch the device configuration or operational data (or other configuration property) using Netmiko, NAPALM, or Scrapli.
- Updates the device
Operational Data, or
Specialized Dataproperty, depending on which one is selected in the service.
For some devices, the configuration cannot be retrieved with only a single Netmiko command. In this case, one can either use:
NAPALM Data BackupService to substitute a napalm getter, such as get_config, in place of retrieving the configuration via a single CLI command.
Scrapli Data BackupService with multiple commands.
Please refer to Builtin Services Types for more information about the specifics of each Data Backup service.
Custom Data Backup Services
As an alternative to the existing
Data Backup Services, one can create a custom
configuration backup service(s) if required. See Customization for more information.
Additional configuration properties
Additional configuration-style properties can be defined in the
Defining extra configuration properties allows the Data Backup services (e.g., Netmiko,
NAPALM, Scrapli) to be able to collect and store additional data sets.
Collecting and Updating Configuration Data
Pull configurations from git
Collected configurations and operational data are written to local text
files, located in
network_data/, which are mapped in the
settings.json to a git
Git is used for storing historical revisions of the data, and each additional
instance of eNMS can retrieve the Git history using the
Admin Button -> Fetch Git Configurations Button. Git fetch can also be
configured in cron to periodically get triggered through the CLI to
update the Configurations that were pushed into Git by another instance
Each of the
Data Backup services has an option,
Local Path, that provides the
ability to store text files in a directory other than
Upon retrieving the current configuration from a device using a
Data Backup Service,
the config is added to the database, as well to the local text file.
After data is collected and updated, this data can be pushed from the local Git repository folder to a remote (if one is configured).
Multiple instances of eNMS pushing to the same
may result in merge conflicts on some or all instances which will halt
To prevent this, the user can install a custom merge driver in the
network_data/ repo that allows git to automatically merge based on the
most recent commit, as detailed in the Installation docs.
Git command support
The Git Action Service provides support
for running Git commands (pull, push, etc.) inside a Workflow. A typical configuration
collection Workflow will include
Git Action services as well as