ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

scrapli快速开始:6行Python代码通过SSH/Telnet/NETCONF管理路由器

scrapli快速开始:6行Python代码通过SSH/Telnet/NETCONF管理路由器 scrapli快速开始6行Python代码通过SSH/Telnet/NETCONF管理路由器【免费下载链接】scrapliFast, flexible, sync/async, Python 3.10 screen scraping client specifically for network devices项目地址: https://gitcode.com/gh_mirrors/sc/scrapliscrapli全称 scrap(e c)li是一个专为网络设备设计的 Python 3.10 屏幕抓取客户端库支持通过Telnet、SSH 和 NETCONF三种协议连接路由器、交换机和防火墙提供同步与异步两种使用方式。无论你是网络自动化新手还是想替换传统 CLI 库的开发者只需几行代码就能实现对设备的自动化管理。 scrapli 是什么简单来说scrapli 就是一个会说话的设备连接器CLI 交互send_input、get_prompt、read_with_callbacks等方法模拟人类在终端上的操作——发送命令、读取输出、识别提示符NETCONF 操作get、getConfig、editConfig、commit等标准方法开箱即用平台定义系统内置 40 厂商设备的 YAML 定义文件Cisco IOS-XE、JunOS、Arista EOS、Nokia SR Linux 等位于scrapli/definitions/目录三种传输方式Telnet、bin系统 ssh 命令封装、libssh2全部通过 Zig 核心库 libscrapli 实现性能优秀且依赖极少 安装 scrapli一条命令搞定scrapli 对 Python 版本要求为3.10最简安装方式pip install scrapli PyPI 上同时存在scrapli和scrapli2两个包同一代码库仅版本号规则不同安装任一个即可。 如果还需要 TextFSM/Cisco Genie 结构化解析能力可安装扩展pip install scrapli[full]详细安装说明可参考 docs/installation.md。 核心示例6行Python代码连接路由器下面是最小的 CLI 使用示例——6 行代码完成连接 → 执行命令 → 获取输出 → 断开的完整流程from scrapli import Cli, AuthOptions with Cli(cisco_iosxe, host10.0.0.1, auth_optionsAuthOptions(usernameadmin, passwordsecret)) as cli: result cli.send_input(show version) print(result.result)逐行拆解一下代码作用from scrapli import Cli, AuthOptions导入 CLI 驱动和认证选项类Cli(cisco_iosxe, ...)指定平台定义名决定提示符匹配等规则、主机、账号密码with ... as cli:上下文管理器自动完成连接与断开无需手动open/closecli.send_input(show version)发送命令并读取到提示符为止的全部输出result.result获取纯文本结果result是一个结构化对象想管理 Nokia SR Linux换个平台名就行Cli(nokia_srlinux, host192.168.1.1, auth_optionsAuthOptions(usernameadmin, passwordNokiaSrl1!))⚡ 异步模式并行管理上百台设备scrapli 的异步 API 极其简单——同步方法名加_async后缀方法前加await这就是全部区别。例如并发连接 5 台设备执行show versionawait cli.send_input_async(input_show version)完整的多连接并发示例见examples/cli/async_usage/main.py展示了如何在事件循环中批量操作多台设备。 NETCONF标准化配置操作除了 CLIscrapli 还内置了完整的 NETCONF 支持无需额外安装其他库。核心方法包括get()/get_config()/get_data()读取运行状态与配置edit_config()/edit_data()编辑候选配置commit()/discard()提交或回滚变更lock()/unlock()配置锁定各操作示例分别位于examples/netconf/get_operations/、examples/netconf/edit_config/、examples/netconf/subscriptions/目录每个示例都配有 README 说明。 我的设备不在支持列表里这几乎是 scrapli 最优雅的地方——平台定义就是简单的 YAML 文件。只需定义几种模式如 privileged exec、config mode的正则匹配和进入/退出命令就能让 scrapli 适配任意 CLI 设备。自定义定义的完整演示见examples/cli/custom_definition/内含foo_bar.yaml定义文件。 下一步学习路线全部示例目录examples/下按 CLI 和 NETCONF 两大类组织覆盖输入模式、分页处理、交互应答、代理跳板proxy jump、会话录制等场景平台定义详解docs/details.md版本迁移指南docs/migration.mdPython 完整示例docs/examples/python.md核心源码入口scrapli/cli.pyCLI 驱动、scrapli/netconf.pyNETCONF 驱动、scrapli/transport.py传输层从6 行代码连接一台路由器到批量自动化数百台网络设备scrapli 用极小的依赖和统一的 API让网络设备的 Python 自动化变得既快速又灵活。【免费下载链接】scrapliFast, flexible, sync/async, Python 3.10 screen scraping client specifically for network devices项目地址: https://gitcode.com/gh_mirrors/sc/scrapli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表