一、简单介绍
目录结构请看前面的nornir小试牛刀章节,这个不在赘述,这里只介绍主机清单。
cat inventory/hosts.yaml
Core-s5720-1: #主机名称
hostname: 192.168.1.200 #设备IP
groups: #组,关联组yaml内的switch这个变量
- switch
data: #自定义站点,这里我用楼编号表示,方便过滤配置这一整栋楼的设备
site: 'F5'
如果一栋楼有很多设备,就复制粘贴就好了,我习惯不在主机内写太多东西,因为交换机比较多,很多只写一次全部放在另外两个变量内了。
二、脚本
from nornir import InitNornir
from nornir_utils.plugins.functions import print_result
from nornir.core.task import Task, Result
from nornir_netmiko import netmiko_send_config, netmiko_save_config #这里引用了send_config是用来想设备发送配置命令,save_config用来保存配置
nr = InitNornir(config_file="config.yaml")
targets = nr.filter(site='F5') #这里的targets就是用来过滤设备的
def config_save(task:Task) -> Result: #自定义函数
push_config = task.run(netmiko_send_config, config_file='cmds.txt') #向设备发送配置命令,命令文件需提前指定
save_config = task.run(netmiko_save_config) #保存配置
results = targets.run(task=config_save) #将上述自定义配置导入变量
print_result(results) #输出结果
三、执行测试
1)我们先来添加一些配置,配置如下:
登陆设备验证,与上述基本一致
2)删除配置
登陆设备配置已删除
总结:这种批量配置的方式,只适用某些配置,其他的还需要大佬们继续挖掘。