编写python程序, 从配置脚本中读取对应的文件内容, 使用 ssh 的方式将配置发送到设备并保存。配置脚本中存放你想要在每台设备上进行配置的命令

import paramiko
import  time
from device_info_01 import *   #创建一个存放设备信息的文件,导入到此文件中for item in range(len(datebase)):    #  datebase是在device_info_01中创建的数据库,用来存放设备的信息ssh = paramiko.SSHClient()ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())#  使用客户端对象连,接ssh服务器ssh.connect(hostname=datebase[item]["ip_addr"],username=datebase[item]["username"],password=datebase[item]["passwd"])#  调用shellcommand =ssh.invoke_shell()#使用shell进行配置command.send(b'system-view\n')command.send(b'user-interface vty 0 4 \n'b'screen-length 0 \n')command.send(b'dis cu\n')#读取数据库中设备的信息,使用shell把配置信息发送到设备中with open(datebase[item]["path"],"r",encoding='utf-8') as f:while True:content = f.readline()if not content:breakcommand.send(content.encode())print(f"plwase wait a monment...您成功的进入了{datebase[item]['device_name']}设备进行配置")time.sleep(20)#接收回显output = command.recv(65535)print(output.decode())#关闭ssh连接ssh.close()

创建一个字典存放设备远程登录时的需要认证的信息,创建完成后用列表进行遍历

dev_sw1 = {'ip_addr':'192.168.100.10','username':'lll','passwd':'Huawei@123','path':'配置脚本cfgs/SW1.cfg','device_name':'SW1'}
dev_sw2 = {'ip_addr':'192.168.100.20','username':'lll','passwd':'Huawei@123','path':'配置脚本cfgs/SW2.cfg','device_name':'SW2'}
dev_sw3 = {'ip_addr':'192.168.100.30','username':'lll','passwd':'Huawei@123','path':'配置脚本cfgs/SW3.cfg','device_name':'SW3'}
dev_sw4 = {'ip_addr':'192.168.100.40','username':'lll','passwd':'Huawei@123','path':'配置脚本cfgs/SW4.cfg','device_name':'SW4'}datebase = [dev_sw1,dev_sw2,dev_sw3,dev_sw4]

Python脚本自动化运维网络设备相关推荐

  1. 什么是自动化运维?为什么选择Python做自动化运维?

    "Python自动化运维"这个词,想必大家都听说过,但是很多人对它并不了解,也不知道是做什么的,那么你对Python自动化运维了解多少呢?跟着蛋糕往下看. 什么是Python自动化 ...

  2. python cmdb_python自动化运维之CMDB篇-大米哥

    python自动化运维之CMDB篇 视频地址:复制这段内容后打开百度网盘手机App,操作更方便哦 链接:https://pan.baidu.com/s/1Oj_sglTi2P1CMjfMkYKwCQ  ...

  3. python开发web运维工具_【实战小项目】python开发自动化运维工具--批量操作主机...

    有很多开源自动化运维工具都很好用如ansible/salt stack等,完全不用重复造轮子.只不过,很多运维同学学习Python之后,苦于没小项目训练,本篇演示用Python写一个批量操作主机的工具 ...

  4. python实现自动化运维项目_Python自动化运维项目开发最佳实战

    下载地址:五号服务器---VIP资料下载七区\VIP专题教程二区 游客,如果您要查看本帖隐藏内容请回复 Python 自动化运维项目开发最佳实战 这个远比什么老男孩的python好的多 2017-1- ...

  5. 基于python技术的自动化运维是干嘛的_如何理解Python与自动化运维的关系。?

    一个是目的,一个是工具的关系 为了达到某个目的(比如这里的运维自动化),我们可以用不同的手段或者工具(比如这里的python) 如果你特别擅长Java.PHP,也可以用Java\PHP来开发相关运维自 ...

  6. Python在自动化运维中的应用之批量配置交换机

    最近在学习Python语言,想着通过一些实际应用来学习可以回事理解,所以想到批量配置管理企业内部的思科交换机. python是一门解释性语言比较高级有很多的基础库和第三方开发库,现在开发环境也比较热门 ...

  7. python自动化办公 51cto_利用python实现批量自动化运维脚本案例

    本文为通过密码或密钥实现python批量自动化运维脚本案例分享,是老男孩linux培训 python课程教学案例内容,后续会分享多线程并发执行这个脚本的更高级的功能(http://oldboy.blo ...

  8. 以下关于python自动化运维错误的是_Python在自动化运维时经常会用到的方法

    原标题:Python在自动化运维时经常会用到的方法 本文由马哥教育Python自动化实战班6期学员推荐,转载自互联网,作者为seed,内容略经小编改编和加工,观点跟作者无关,最后感谢作者的辛苦贡献与付 ...

  9. Python自动化运维介绍

    一 技能要求 1 了解Python基础知识 2 了解运维的基础知识 3 运行环境:python2.7 二 运维发展的不同阶段 1 传统运维 命令行 批量脚本 2 自动化运维 3 云运维 三 传统运维特 ...

  10. 如何做好python自动化运维,python在运维中的应用

    这篇文章主要介绍了一个有趣的事情,具有一定借鉴价值,需要的朋友可以参考下.希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下. 1.如何做好python自动化运维 随着移动互联网的普及, ...

最新文章

  1. win8 网络 连接计算机名称,win8本地网络联接的名字怎么改
  2. 计算机二级日期格式,09年计算机二级辅导:指定格式的日期字符串转化成java.util.Date类型日期对象...
  3. C语言素数筛选法(prime seive) 算法(附完整源码)
  4. 死锁:多线程同时删除唯一索引上的同一行
  5. (209)浮点数运算步骤
  6. from __future__ import的用法
  7. python学习--关注容易被忽略的知识点--(三)高级特性
  8. 安装运行jupyter notebook时报错:ModuleNotFoundError: No module named 'prompt_toolkit.formatted_text'...
  9. [转贴]RUP与XP的平衡之道
  10. Java 一个简单的接口使用案例
  11. 中国能源物联网行业运营格局及供需态势分析报告2022-2028年版
  12. 考研数学 妙题摘记(3) (求数列和的极限,附定积分定义法)
  13. 一段比较巧妙的sql
  14. request和request.form和request.querystring的区别
  15. 计算机视觉——图像拼接
  16. oracle := 和=,oracle中 =: 和 := 分别是什么意思?
  17. 牛逼的python代码_几段牛逼的 Python 代码理解面向对象
  18. C语言中Const指针变量(常指针)
  19. HBUILDERX怎么导入html文件,HBuilderX使用教程 HBuilderX如何导入图片
  20. 解决idel连接mysql数据库报错问题

热门文章

  1. 《xxx重大需求征集系统的》可用性和可修改性战术分析
  2. MarkDown 语法初步
  3. centos编译安装vim7.4
  4. RMI 自己创建的 过程
  5. IDAutomation的条形码字体和工具集TrueType Font Package
  6. [百万级]通用分页存储过程.[千万级]实现千万级数据的分页显示!
  7. DataLoader 和 Dataset
  8. hive安装及常用命令
  9. YOLOV4论文记录
  10. The content of element type “resultMap“ must match “(constructor?,id*,result*,association*,collectio