网络配置备份

netcfgbu的Python项目详细描述


Python 3.8Code Style

version

网络配置备份

作为一名网络工程师,我需要将我的网络配置文件备份到 版本控制系统,我需要一个工具来自动化这个过程。我的初选 访问设备的方法是SSH。在

支持的设备
netcfgbu工具是专门为备份网络操作系统(NOS)而构建的 本质上是整体的结构。也就是说整个 可以使用诸如“show running config”之类的命令捕获配置。任何 提供单片配置的NOS应得到netcfgbu的支持。在

主要考虑事项

  • 我有一个多供应商的环境。我需要解释一下不同的命令 用于获取正在运行的配置并在以下情况下禁用分页 必修的。在

  • 我想提供一个简单的CSV格式的网络清单。我想 从一个或多个源动态创建此资源清册,例如Netbox。 我希望有能力过滤这个库存限制和排除限制。在

  • 我可能需要尝试多个SSH凭据。我不能把我的密码储存在 任何配置文件,因此此工具必须通过环境获取密码 变量。在

  • 我将有大量的设备(>;1000),所以我希望这个工具采取 任何减少总时间的技术的优势。在


netcfgbu的一般方法是基于配置的方法,以便 不要硬编码该工具以使用特定的网络设备驱动程序 并避免包含第三方集合的复杂性和依赖性 特定于网络设备的库。在

阅读文档here
阅读快速入门here
Example netcfgbu.toml configuration

简介

一旦您设置了configuration文件并 inventory文件您可以备份所有配置 使用命令:

$ netcfgbu backup

运行结束时,您将看到一个报告,例如:

^{pr2}$

还有许多其他的commands,如--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.

设置

netcfgbu工具不需要您创建配置文件,但是 出于实际目的,您通常需要一个。文件是 TOML格式。默认为文件 netcfgbu.tomlnetcfgbu在当前工作目录中搜索。 您可以使用-C <filepath>选项或使用 环境变量NETCFGBU_CONFIG

至少需要指定inventoryCSV文件和 一组默认的SSH登录凭据。网络设备配置将是 存储在当前工作目录中,或在defaults.configs_dir中指定 选项。配置文件支持使用环境变量。在

示例:

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

netcfgbu定义了特定的Environment Variables的使用。他们的 use相当于以下配置文件。也就是说,如果您没有提供netcfgbua 配置文件,这将用于:

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

系统要求和安装

此工具需要使用Python3.8。
可通过PyPI安装:

$ pip install netcfgbu

问题或建议?

如果您有任何问题或建议,请打开github问题。在

谢谢你!在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java:字符串。RTL设备语言用标志“+”格式化,数字后加符号   java GAE作为桌面应用程序(Swing)的服务提供商   java将InputStream转换为FileInputStream不适用于Apache POI   java外部Voronoi库“网格”:什么是草图和处理?   重载重写的泛型方法java   java显示组织上设置的错误。springframework。验证。jsp中的错误对象   java一些Spring模型属性没有显示在我的JSP中   java无法编译Guava 23的SimpleTimeLimiter示例   java如何更改JTree中的“根”目录名?   java如何在安卓中对相对布局产生连锁反应?   java错误:org。冬眠例外SQLGrammarException:无法提取结果集,dateAccessed是未知列   如何使用java监听JSON文件更新   由抽象封闭类创建的匿名内部类能否通过反射确定实现类?