All Projects → jeremyschulman → netcfgbu

jeremyschulman / netcfgbu

Licence: Apache-2.0 license
Network Configuration Backup

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to netcfgbu

salt-sproxy
Salt plugin to automate the management and configuration of (network) devices at scale, without running (Proxy) Minions.
Stars: ✭ 105 (+12.9%)
Mutual labels:  configuration-management, network-automation
SeLite
Automated database-enabled navigation ✔️ of web applications
Stars: ✭ 34 (-63.44%)
Mutual labels:  configuration-management
Fusioninventory Agent
FusionInventory Agent
Stars: ✭ 177 (+90.32%)
Mutual labels:  configuration-management
Fusioninventory For Glpi
FusionInventory plugin for GLPI
Stars: ✭ 241 (+159.14%)
Mutual labels:  configuration-management
Xconf
分布式配置中心
Stars: ✭ 185 (+98.92%)
Mutual labels:  configuration-management
WDR
Jython framework aiming for simplified WebSphere Application Server scripting
Stars: ✭ 43 (-53.76%)
Mutual labels:  configuration-management
Simple Settings
A simple way to manage your project settings.
Stars: ✭ 165 (+77.42%)
Mutual labels:  configuration-management
DazzleConf
Incredible configuration library
Stars: ✭ 34 (-63.44%)
Mutual labels:  configuration-management
runcom
An XDG enhanced run command manager for command line interfaces.
Stars: ✭ 16 (-82.8%)
Mutual labels:  configuration-management
Kconfiglib
A flexible Python 2/3 Kconfig implementation and library
Stars: ✭ 231 (+148.39%)
Mutual labels:  configuration-management
Mgmt
Next generation distributed, event-driven, parallel config management!
Stars: ✭ 2,708 (+2811.83%)
Mutual labels:  configuration-management
Habitat
Modern applications with built-in automation
Stars: ✭ 2,334 (+2409.68%)
Mutual labels:  configuration-management
ini
📝 Go INI config management. support multi file load, data override merge. parse ENV variable, parse variable reference. Dotenv file parse and loader. INI配置读取管理,支持多文件加载,数据覆盖合并, 解析ENV变量, 解析变量引用。DotEnv 解析加载
Stars: ✭ 72 (-22.58%)
Mutual labels:  configuration-management
Microconfig
Modern tool for microservice configuration management
Stars: ✭ 180 (+93.55%)
Mutual labels:  configuration-management
netbox automation
Manage netbox configuration with automation. Netbox as a the source of truth: generate an ansible inventory file from Netbox with automation, generate yaml files for ansible playbooks or jinja templates from Netbox with automation
Stars: ✭ 28 (-69.89%)
Mutual labels:  network-automation
Pearl
Pearl is a lightweight package manager for automating reproducible environments between different systems (Linux and OSX). It can be used for dotfiles, plugins, programs and any form of code accessible via git.
Stars: ✭ 166 (+78.49%)
Mutual labels:  configuration-management
Deck
decK: Configuration management and drift detection for Kong
Stars: ✭ 211 (+126.88%)
Mutual labels:  configuration-management
go-uci
Native Go bindings for OpenWrt's UCI.
Stars: ✭ 69 (-25.81%)
Mutual labels:  configuration-management
DeployMachineLearningModels
This Repo Contains Deployment of Machine Learning Models on various cloud services like Azure, Heroku, AWS,GCP etc
Stars: ✭ 14 (-84.95%)
Mutual labels:  configuration-management
juno-agent
juno-agent
Stars: ✭ 46 (-50.54%)
Mutual labels:  configuration-management

Python 3.8 Code Style

version

Network Configuration Backup

As a network engineer I need to backup my network configuration files into a version control system, and I need a tool to automate this process. My primary means of accessing the devices is SSH.

Supported Devices
The netcfgbu tool was built specifically to backup network operating system (NOS) configurations that are monolithic in nature. That is to say the entire configuration can be captured using a command such as "show running-config". Any NOS that provides a monolithic configuration should be supported by netcfgbu.

Primary Considerations

  • I have a multi-vendor environment. I need to account for the different commands that are used to obtain the running configuration and disable paging if required.

  • I want to provide my network inventory in a simple CSV format. I want to create this inventory dynamically from one or more sources, for example Netbox. I want the ability to filter this inventory with limit and exclude constraints.

  • I may need to try multiple SSH credentials. I must not store my passwords in any configuration file, so this tool must acquire passwords via environment variables.

  • I will have a large number of devices (>1000) so I want this tool to take advantage of any and all techniques that reduce the total amount of time.


The general approach to netcfgbu is a configuration based methodology so as to not hardcode the tool to work with specific network device drivers and avoid the complexity and dependency of including a collection of 3rd-party libraries specific to network devices.

Read the Documenttion here.
Read the Quick Start here
Example netcfgbu.toml configuration

Introduction

Once you've setup the configuration file and inventory file you can backup all of your configurations using the command:

$ netcfgbu backup

At the end of the run, you will see a report, for example:

# ------------------------------------------------------------------------------
Summary: TOTAL=1482, OK=1482, FAIL=0
         START=2020-Jun-05 01:48:55 PM, STOP=2020-Jun-05 01:50:08 PM
         DURATION=72.566s
# ------------------------------------------------------------------------------

There are a number of other commands provided as shown via --help:

Usage: netcfgbu [OPTIONS] COMMAND [ARGS]...

Options:
  --version  Show the version and exit.
  --help     Show this message and exit.

Commands:
  backup     Backup network configurations.
  inventory  Inventory subcommands.
  login      Verify SSH login to devices.
  probe      Probe device for SSH reachablility.
  vcs        Version Control System subcommands.

Setup

The netcfgbu tool does not require you to create a configuration file, but for practical purposes you will generally need one. The file is TOML format. The default file is netcfgbu.toml and netcfgbu searches for in the current working directory. You can override this location using the -C <filepath> option or using the environment variable NETCFGBU_CONFIG

At a minimum you need to designate the inventory CSV file and a default set of SSH login credentials. The network device configs will be stored in the current working directory, or as specified in the defaults.configs_dir option. The configuration-file supports the use of environment variables.

Example:

[defaults]
    inventory = "$PROJ_DIR/inventory.csv"
    configs_dir = "$PROJ_DIR/configs"
    credentials.username = "$NETWORK_USERNAME"
    credentials.password = "$NETWORK_PASSWORD"

The netcfgbu defines the use of specific Environment Variables. Their use is the equivalent of the following configuration file. That is to say, if you did not provide netcfgbu a configuration file, this would be used:

[defaults]
    inventory = "$NETCFBU_INVENTORY"
    configs_dir = "$NETCFGBU_CONFIGSDIR"
    credentials.username = "$NETCFGBU_DEFAULT_USERNAME"
    credentials.password = "$NETCFGBU_DEFAULT_PASSWORD"

System Requirements and Installation

This tool requires the use of Python3.8.
Installation available via PyPI:

$ pip install netcfgbu

Questions or Suggestions?

Please open a github issue if you have any questions or suggestions.

Thank you!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].