python 使用netconf 配置Cisco CSR 1000V

背景知识

netconf 是一种网络配置协议,使用xml消息来传输配置信息;
yang是一种数据模型语言,用于描述设备上的配置数据的结构,xml文件的语法需要符合yang 描述的数据模型。

实验环境

一台CSR 1000V ,版本必须高于16.3.1
预配置:
1.配置ssh登录
2.配置账号有15级权限 (否则会提示access denied)
3.配置netconf-yang

配置脚本参考
https://dev.to/alecbuda/python-automation-on-cisco-routers-in-2019-netconf-yang-jinja2-52ho

cisco XE YANG
https://github.com/YangModels/yang/tree/master/vendor/cisco

总结

设备配置可以分为配置配置准备,配置下发,读取结果三个步骤,相比于paramiko配置设备,netconf 在配置准备,读取结果上比较复杂。同一类型的配置可以准备jinja模板,减轻复杂度,但是需要为每个操作准备配置模板,工作量较大;另外在读取结果时,需要对xml进行解析,可以为每个操作配置相应的解析方法。
在配置下发方面,netconf较paramiko简单,无需判断操作是否完成,无需代码sleep,无需代码实现读取缓存区返回的结果。

支持的设备上,只要设备支持ssh登录,就能支持paramiko,但不一定支持netconf。

总的来说,目前还是rest 配置设备最简单。但支持的设备少。

你可能感兴趣的:(python)