Python(NetOps)前传-网络设备开局配置

背景

我们知道用Python在cli配置网络设备的前提是:

  • 网络设备与Python主机网络可达
  • 网络设备已开启并完成ssh相关配置

目标

本文已华为S5720S-52P-LI-AC交换机为例,完成:

  1. 完成网络设备开局配置;
  2. 用Python脚本验证ssh登录

配置

一、网络设备开局配置

如果之前配置杂乱,建议console登录之后首先在用户视图下用reset saved-configuration删除配置,然后重启设备,如未重启原配置仍然生效;如果是新设备可直接进行开局配置。

1、console线连接

2、默认账户登录

      交换机默认用户名admin    密码admin@huawei.com
      路由器默认用户名admin    密码Admin@huawei

3、配置设备名称(可选)

      #进入系统视图
      system view
      #重命名设备为XXX
      sysname xxx

4、配置时区时间(可选)

      #配置时区
      clock timezone Beijing add 08:00:00
      
      #配置时间
      clock datatime 19:00:00 2024-03-06
      
      #查看配置
      dis clock

5、配置管理接口及IP

执行ip address命令,配置设备管理IP地址,执行命令ip route-static,配置设备缺省网关。

  • 5.1、对于有管理网口的设备,在管理网口下配置管理IP地址
int gi 0/0/0
ip address 192.168.99.1 24     //设备管理IP
q
ip route-static 0.0.0.0 0.0.0.0 192.168.99.1     //设备缺省网关
  • 5.2、对于没有管理网口的设备,在vlanif接口下配置管理IP地址
sys
vlan 99
q
int vlanif 99
ip add 192.168.99.1 24   //设备管理IP
q
ip route-static 0.0.0.0 0 192.168.99.1    //设备缺省网关

由于本文是准备将Python主机直接与S5720交换机SSH连接,所以需要将其中某个接口配置到管理接口下

int gi 0/0/1
p l a       //全写是port link-type access
p d v 99     //全写是port default vlan 99

6、配置VTY

sys
user-int vty 0 4
authentication-mode aaa    //配置VTY用户认证方式为AAA认证
protocol inbound ssh    //VTY用户界面所支持的协议缺省为ssh
q

7、配置AAA

注意:一般情况下ssh用户很多都用admin,但是出于安全性考虑,最好设置为非系统默认用户

sys
aaa
local-user python password irreversible-cipher python@network
local-user python service-type ssh terminal
local-user python privilege level 15
q

8、创建SSH用户(可选)

sys
ssh user python
ssh user python authentication-type password
ssh user python service-type stelnet

由于VTY默认采用AAA里配置的用户且支持ssh,所以可以不用再创建SSH用户

9、开启SSH服务

stelnet server enable

二、用Python脚本验证ssh登录

1、通过paramiko模块ssh登录设备,并执行dis ip int b命令之后返回结果

2、代码 

import paramiko
import time
# 创建ssh客户端
ssh = paramiko.SSHClient()
# 自动添加主机密钥
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接到远程服务器
ssh.connect('192.168.99.1',username='python',password='python@network')
# 参数说明:
# allow_agent:是否允许使用代理验证,默认为False
# look_for_keys:是否在本地寻找私钥文件,默认为False
# 执行命令
cli=ssh.invoke_shell()
cli.send('screen-length 0 temporary\n')
cli.send('dis ip int b\n')
time.sleep(3)
dis_cu = cli.recv(999999).decode()
print(dis_cu)
# stdin,stdout,stderr = client.exec_command('ls -l')
# print(stdout.read().decode())
# 关闭连接
# client.close()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/433923.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

整流二极管:电路图、符号、功能与其它二极管的区别

整流二极管是 一种用于将交流电转换为直流电的半导体器件。二极管最重要的特性是单向导电性。在电路中,电流只能从二极管的正极流入,从负极流出。通常,它包含一个带有正极和负极端子的 PN 结。其结构如下图所示。 P区的载流子是空穴&#xf…

【Mysql】执行sql语句后,mysql都做了什么?

查数据大家都经常干,但是你知道从执行sql到看到结果,mysql背后都做了什么事情吗? 一、mysql的架构 client/server 这种客户端到服务端的架构,大家一定都很熟悉,其实 mysql 也与之类似。 可以有多个客户端与服务端连…

突破编程_前端_JS编程实例(简单树结构组件)

1 开发目标 实现如下简单树结构组件: 再点击树节点后,会调用客户端传入的回调函数: 2 详细需求 简单树结构组件需根据客户端提供的参数创建,具备动态构建树形结构节点、选项卡切换及自定义内容显示等功能: &#xf…

DR模式LVS负载均衡部署

实验:7-1做调度器;7-2和7-3做真实服务器;7-4做客户端; 1.先关闭所有的防火墙和selinux [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 [rootlocalhost ~]# 2.怎么看selinux状态 [rootlocalhost…

docker拉取镜像报错permission denied

ocker pull apache/causeway-app-helloworld:latest permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post “http://%2Fvar%2Frun%2Fdocker.sock/v1.24/images/create?fromImageapache%2Fcauseway-app-helloworld&a…

Vue:双token无感刷新

文章目录 初次授权与发放Token:Access Token的作用:Refresh Token的作用:无感刷新:安全机制:后端创建nest项目AppController 添加login、refresh、getinfo接口创建user.dto.tsAppController添加模拟数据 前端Hbuilder创…

node的使用和模块化认识

node使用 1. node运行文件 node执行js的方式是在cmd命令行运行运行方式两种 直接打开命令行输入node,进入node环境,书写javascript,这种方式书写javascript关闭命令行就需要在重新写一遍,一般开发不推荐使用这种方式。 退出node…

磁盘没有满 为什么提示磁盘空间不足?原来是inode惹的祸。

我为什么知道是inode 的问题呢? 接下备好瓜子花生来且听我分析 我一个免费开源根据ip获取用户地理位置的api 突然报错如下 failed to open stream: No space left on device in 然后登录linux 使用shell命令 自动补全功能竟然也提示磁盘空间不足 报错如下 cd /-b…

ES单节点部署

ES 拉取镜像 docker pull elasticsearch:7.10.1启动容器 docker run -d -p 9200:9200 -p 9300:9300 -e "discovery.typesingle-node" -e "ES_JAVA_OPTS-Xms1g -Xmx1g" -v /es_data:/usr/share/elasticsearch/data --name es 558380375f1a注&#xff1a…

微信小程序怎么盈利?探索微信小程序的盈利途径与建设流程

微信小程序自推出以来,凭借其无需下载安装、即用即走的特点,在移动互联网领域迅速占据了重要地位。商家和开发者们纷纷投入其中,希望借助这一平台实现商业价值的转化。那么,微信小程序是如何为开发者和商家带来盈利的呢&#xff1…

配置与管理防火墙

配置与管理防火墙 1,概念:设置在不同网络或网络安全域之间的一系列部件的组合。 2,功能:保护内网中易手攻击的服务;控制内外网之间网络系统的访问;隐藏内网的IP地址及结构的细节,提高网络保护…

【操作系统概念】 第5章:进程调度

文章目录 0.前言5.1 基本概念5.1.1 CPU-I/O 区间周期5.1.2 CPU程序调度5.1.3 抢占调度5.1.4 分派程序 5.2 调度准则5.3 调度算法5.3.1 先到先服务调度(First-Come,First-Served scheduling)5.3.2 最短作业优先调度(shortest-job-first scheduling,SJF)5.3.3 优先级调…

docker 安装 portainer

小编给友友们总结了一下 Portainer 的好处以下 Portainer是Docker的图形化管理工具,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作)、事件日志显示、容器控制台操作、Swar…

掘根宝典之C语言原码,反码,补码,位操作运算符(~,,|,^,<<,>>,=,|=,^=,>>=,<<=)

目录 二进制数 什么是二进制数 c语言中的二进制数 机器数 原码 正数计算 负数计算 反码 负数计算 跨零计算 补码 定义 跨零计算 总结 按位逻辑运算符(~,&,&,|,|,^,^) 按…

玩家至上:竞技游戏设计如何满足现代玩家的需求?

文章目录 一、现代玩家需求分析二、以玩家体验为核心的游戏设计三、个性化与定制化服务四、强化社交互动与社区建设五、持续更新与优化《游戏力:竞技游戏设计实战教程》亮点编辑推荐内容简介目录获取方式 随着科技的飞速发展和游戏产业的不断壮大,现代玩…

java工程师面试技巧,最新Java开发面试解答

一、前言 聊的是八股的文,干的是搬砖的活! 面我的题开发都用不到,你为什么要问?可能这是大部分程序员求职时的经历,甚至也是大家讨厌和烦躁的点。明明给的是拧螺丝的钱、明明做的是写CRUD的事、明明担的是成工具的人…

基于词袋模型的场景识别(附源代码!!!)

目录 1. 任务要求2. 数据集3. 实现算法4. 实验结果5. 源代码 1. 任务要求 输入:给定测试集图片,预测在15个场景中的类别。任务: 实现Tiny images representation。实现最近邻分类器nearest neighbor classifier。实现SIFT特征词袋表示 输出&…

原生IP是什么?如何获取海外原生IP?

一、什么是原生IP 原生IP地址是互联网服务提供商(ISP)直接分配给用户的真实IP地址,无需代理或转发。这类IP的注册国家与IP所在服务器的注册地相符。这种IP地址直接与用户的设备或网络关联,不会被任何中间服务器或代理转发或隐藏。…

嵌入式学习-FreeRTOS-Day1

一、重点 1、VCC和GND VCC: 1、电路中为电源,供应电压 2、3.3v-5v 3、数字信号中用1表示GND: 1、表示地线 2、一般为0v 3、数字信号中用0表示2、电容和电阻 电容 存储电荷 存储能量: 电容器可以在其两个导体板(极…

java开发工程师面试技巧,小白必看

什么是分布式锁?在回答这个问题之前,我们先回答一下什么是锁。 普通的锁,即在单机多线程环境下,当多个线程需要访问同一个变量或代码片段时,被访问的变量或代码片段叫做临界区域,我们需要控制线程一个一个…