The wait is over, NAPALM is finally fully integrated in an automation framework. Beginning with 2016.11 (Carbon), all the NAPALM features are integrated in the core of Salt - more details in the release notes. That means, when you install Salt you have by default the network automation features included!
Why is this so important?
This is the result of 11 months of assiduous work and contributions to both NAPALM and Salt projects. Basically after less than one year, the network engineers finally have something they can just use without geting lost in complex setups that require deeper software knowledge - only two simple steps required: 1. Install & 2. Use.
How did it look like before?
11 months ago we decided to go on the path of network automation having the goals desribed in ¶ Salt but very soon we learned that none of the tools available at that time was able to help us as we needed! Because of this, we decided to build a system for us and also contribute to two great projects: Salt and NAPALM, allowing others in the future to overcome these shortfalls.
NAPALM
NAPALM eveloved a lot over the last months: at the beginning of the year there were only 6 features available versus now, at the end of November. It’s a huge difference! Thanks to the whole community for making this happen! The first pull request come at the beginning of February and caused David Barroso excitement but also a heaadache reviewing a pretty big PR :)
Salt
Despite of years of experience working with this Salt and several thousands of serves managed, historically this product did not offer any capability for network devices. But from 2015.8 on, SaltStack developers have introduced the proxy minion feature. The first pull request to introduce NAPALM was at the end of February.
Installation
For complete installation instructions, please proceed to the salt-users forums.
Usage
As presented in ¶ How to use? from the first blog post, when the installation is complete, you only need a file containing the device connection details, as described in the NAPALM proxy documentation.
Example:
proxy:
proxytype: napalm
driver: junos
host: edge01.bjm01
username: my_username
passwd: my_password
optional_args:
port: 12201
config_format: set
Way to go! From here on, imagination is the only limit!