Skip to main content

Backup Network Device Configurations

Project description

Stockpiler

Stockpiler gathers network device configurations and stores them in a local Git repository.

Stockpiler utilizes Nornir, Netmiko, and GitPython for a fully self-contained backup solution, and has been tested to function on Linux, MacOS, and Windows.

By default, it will read in device inventory from /etc/stockpiler/, and output backups to /opt/stockpiler/. Both are configurable by command line arguments.

Installation

Notes:

  1. Stockpiler utilizes a very recent release of Netmiko. This requires some specific handling (as outlined below), until other libraries update their dependencies.
  2. Stockpiler requires Python 3.7 or higher.
  3. Stockpiler utilizes Python Virtual Environments for isolation of the code/environment.

Installation Steps

  1. Create a directory for the Stockpiler virtual environment: mkdir stockpiler
  2. Create a virtual environment in that directory: python3 -m venv stockpiler
  3. Navigate to the new directory and activate it: cd stockpiler;source bin/activate
  4. Install Nornir: pip install nornir
  5. Edit the dependencies, this will require you to find the Napalm and Nornir METADATA files in your virtual environment:
    • Paths should be similar to:
      • lib/python3.7/site-packages/napalm-2.5.0.dist-info/METADATA
      • lib/python3.7/site-packages/nornir-2.3.0.dist-info/METADATA
    • In each file, find the lines similar to below that reference Netmiko:
      • Requires-Dist: netmiko (==2.4.2)
      • Requires-Dist: netmiko (>=2.3.3,<3.0.0)
    • Edit it to include 3.0.0, similar to the below:
      • Requires-Dist: netmiko (>=2.4.2)
      • Requires-Dist: netmiko (>=2.3.3)
  6. Install Stockpiler: pip install stockpiler

Configuration

As Stockpiler utilizes Nornir for the underlying inventory and task handling, see the Nornir documentation for more information on creating an inventory file or your configuration options

While we have provided a simple nornir_conf.yaml file, you are welcome to provide your own or customize the one provided by the package.

If you are using Windows (or wish to host your inventory in a different location than /etc/stockpiler/inventory), you will need to create a custom Nornir config file with your inventory paths.

Project details


Download files

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

Source Distribution

stockpiler-0.5.1.tar.gz (12.6 kB view details)

Uploaded Source

Built Distribution

stockpiler-0.5.1-py3-none-any.whl (16.5 kB view details)

Uploaded Python 3

File details

Details for the file stockpiler-0.5.1.tar.gz.

File metadata

  • Download URL: stockpiler-0.5.1.tar.gz
  • Upload date:
  • Size: 12.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.7.6

File hashes

Hashes for stockpiler-0.5.1.tar.gz
Algorithm Hash digest
SHA256 4025e668019fe25635c59d456ab3948ecb7a83c6dece38684778a9db53a4b2d5
MD5 d40e20d20995a1be904b27f4914a9625
BLAKE2b-256 7326a078661e0ca16770f85f36a4080da5f4e1ad6c964c2aeb1e764f60e9111c

See more details on using hashes here.

File details

Details for the file stockpiler-0.5.1-py3-none-any.whl.

File metadata

  • Download URL: stockpiler-0.5.1-py3-none-any.whl
  • Upload date:
  • Size: 16.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.7.6

File hashes

Hashes for stockpiler-0.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4094cf0826230369d8dd650fcf3eddb839c15670107ed13f12f2b76de86879b1
MD5 e555d9822df5daeab30282fc371cf75c
BLAKE2b-256 236fe692c25a6f9cb17966ec2ecd9cd59484dcee83c7d1396f2a2114714dfeb5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page