Skip to main content

Utility for pushing configuration data to network devices and retrieving state data

Project description

NetworkConfigUtility

NetworkConfigUtility is currently a small program to assist with pushing configuration data to network devices. It can also retrieve state data. This utility is built using the Nornir framework:

https://github.com/nornir-automation/nornir

Source Code

https://github.com/naonder/NetworkConfigUtility

PyPI package

https://pypi.org/project/networkconfigutility

Setup

pip install networkconfigutility

See sample hosts, groups, and defaults file for reference. Also see the following for more information on Nornir and SimpleInventory

https://nornir.readthedocs.io/en/stable/tutorials/intro/inventory.html

Also - see the sample 'configuration.ini' file on how to set it up properly

Lastly - this requires that ntc-templates are downloaded to the host running this program:

https://github.com/networktocode/ntc-templates

ntc-templates

Easiest method is to download and keep the ntc-templates in the home directory of the user running this program.

git clone https://github.com/networktocode/ntc-templates

Otherwise you can explicitly tell the program (namely Netmiko) where to look for them (example is for Linux):

export NET_TEXTFSM=/path/to/ntc-templates/templates/

More information is here:

https://pynet.twb-tech.com/blog/automation/netmiko-textfsm.html

Usage

Run using the following:

python -m networkconfigutility [options\files\filters]

Example of current capabilities:

usage: networkconfigutility [-h] -config path to config file for device(s |
                        -getters GETTERS [GETTERS ...] | -cli command)
                        configuration_file ftype filter

positional arguments:
  configuration_file    name of configuration file for program itself
  ftype                 type of filter to use
  filter                name of device or group

optional arguments:
  -h, --help            show this help message and exit
  
  -config path to config file for device(s)
  
                        change configuration on a device or groups of devices
                        
  -merge path to config file for device(s)
  
                    merge a configuration to a device or group of devices

                        
  -getters GETTERS [GETTERS ...]
  
                        use built-in NAPALM getters to retrieve information
                        
  -cli command          use the system CLI to retrieve information
  
    -getters_extra GETTERS_EXTRA [GETTERS_EXTRA ...]
    
                    optional, additional getters to use
                    
  -cli_extra command    optional, additional CLI to retrieve information

Example execution of the getters looks like such:

Enter username: test-user
Input password: 
napalm_get**********************************************************************
* test-device ** changed : False ***********************************************
vvvv napalm_get ** changed : False vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv INFO
{ 'get_interfaces_ip': { 'Vlan10': { 'ipv4': { '10.96.128.18': { 'prefix_length': 24}}}}}
^^^^ END napalm_get ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Returned output is utilized from the Nornir 'print_result()' method

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for networkconfigutility, version 1.0.3
Filename, size File type Python version Upload date Hashes
Filename, size networkconfigutility-1.0.3.tar.gz (4.6 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page