Python自动化运维—Paramiko实验(思科)

Paramiko实验——(思科)网络搭建


小白网工的python之路

【Python-自动化】paramiko模块

paramiko介绍

  paramiko是基于Python实现的SSH2远程安全连接,支持认证及密钥方式。可以实现远程命令执行、文件传输、中间SSH代理等功能,相对于Pexpect,封装的层次更高,更贴近SSH协议的功能

实验6中,各个交换机记得改名,不然都是一样的默认命名,配置文件通过ftp保存在/home/python,默认为交换机名-cfg,会一次一次的覆盖,最终结果就是一个SW5的配置文件,前4个文件全被覆盖了

实验环境

我的实验环境是GNS3搭建拓扑图,用云桥接到在VMware Workstation 16运行的CentOS 7,

CentOS 7上搭建好了python3.8,

所有交换机已经预配好了SSH服务,ssh登录账号为python,密码为123

拓扑

IP规划

CentOS 7 跑python代码 192.168.10.46
vIOS-L2-1 192.168.10.111
vIOS-L2-2 192.168.10.112
vIOS-L2-3 192.168.10.113
vIOS-L2-4 192.168.10.114
vIOS-L2-5 192.168.10.115

实验一 -lab1

实验目的

用python代码实现SSH登录交换机(192.168.10.111),为其loop0接口配置IP(1.1.1.1/32)

先确定SW1上loop0没有IP:

在CentOS 7上创建paramiko-lab1.py文件:

python代码

import paramiko
import time

ip = "192.168.10.111"
username = "python"
password = "123"

ssh_client = paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh_client.connect(hostname=ip,username=username,password=password,look_for_keys=False)

print ("Sucessfully login to ", ip)

command = ssh_client.invoke_shell()

command.send("configure terminal\n")
command.send("int loop 0\n")
command.send("ip address 1.1.1.1 255.255.255.255\n")
command.send("end\n")

time.sleep(1)
output = command.recv(65535)
print (output.decode('ascii'))

ssh_client.close()
  • 重点代码解析
  • 先假定读这篇文章的朋友都有一定的基础,故简单的代码就不赘述
  • ssh_client = paramiko.SSHClient()
  • ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
  • ssh_client.connect(hostname=ip,username=username,password=password,look_for_keys=False)
  • 上面三条语句我称之为paramiko的ssh三件套,也就是说,使用paramiko模块进行ssh登陆网元都会要使用的命令
  • command.send(),这里面填的就是我们要执行的命令
  • output = command.recv(65535),python截屏本次运行的输出记录,将其赋值给output这个变量
  • print (output.decode('ascii')) 将output打印出来
  • ssh_client.close(),退出SSH

执行代码

实验结果

验证结果

实验成功

由此,我们实验1成功!


实验二 -lab2

实验目的

  • 实现交互式的SSH用户名和密码输入
  • 配合for loop同时给5台交换机配置VLAN 111至VLAN 115

实验准备

执行我们的代码前,先确定我们的5台交换机没有相应的vlan配置:

SW1配置

SW2配置

SW3配置

SW4配置

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Pythonparamiko模块是一种用于实现自动化运维的工具,可以通过SSH协议连接到远程服务器,并执行命令、上传、下载文件等操作。paramikoPython中最常用和最成熟的SSH库之一。 通过paramiko,我们可以简化远程服务器的管理和配置工作。使用paramiko,可以实现自动化的服务器批量部署、配置文件更新、软件升级等任务。它提供了一组简洁的API,使得我们可以通过Python脚本来实现各种操作。 paramiko的主要功能包括远程命令执行、sftp操作、文件传输等。我们可以使用paramiko连接到远程服务器,执行命令并获取输出。同时,我们还可以使用sftp进行文件的上传和下载操作,方便我们进行文件的管理和传输。 paramiko的优点包括易用性和灵活性。它提供了一个面向对象的API接口,使得我们可以轻松地进行远程管理。同时,paramiko还支持并发操作,可以同时连接多个服务器进行批量操作,提高效率。 另外,paramiko还具有安全性和稳定性。它使用SSH协议进行连接和操作,能够进行加密通信,确保数据的安全性。同时,paramiko经过了广泛的测试和使用,具有较高的稳定性,可以满足日常运维工作的需求。 总之,paramiko是一种功能强大、易于使用的Python工具,可以实现自动化运维任务,如远程命令执行、文件传输等。它的出色表现使得它成为了自动化运维领域的首选工具之一。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Beluga

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值