Appendix B. Using NAPALM

NAPALM, Network Automation and Programmability Abstraction Layer with Multivendor support, is a Python library that offers a robust set of operations to manage network devices using a common set of Python objects regardless of how each operation is performed for a given device type.

While NAPALM has a growing set of features, we’re focused on two core primary functions of NAPALM in this section:

  • Configuration management

  • Retrieving information from network devices

In each of these, note that performing any given operation is the same no matter which vendor or OS you’re working with, as long as there is a supported NAPALM driver and feature for the given operation.

NAPALM supports a large quantity of device vendors and uses different APIs to communicate to each of them. For example, Cisco Nexus currently uses NX-API, Arista EOS uses eAPI, Cisco IOS uses SSH, and the Juniper Junos drivers use NETCONF. When evaluating NAPALM, you should be aware of which API is required for the device(s) you’re working with.

For more details on supported APIs and devices, as well as greater detail on topics not covered in this appendix, consult the NAPALM documentation. For now, we’ll start by looking at managing configurations with NAPALM.

Understanding Configuration Management in NAPALM

NAPALM offers a different approach to managing device configurations while still allowing for a more traditional approach to configuring devices. The unique approach NAPALM ...

Get Network Programmability and Automation now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.