当前位置:首页>python>华为eNSP结合Python实现自动化运维

华为eNSP结合Python实现自动化运维

  • 2026-10-26 13:34:06
华为eNSP结合Python实现自动化运维
使用 Python 对华为 eNSP(Enterprise Network Simulation Platform)进行自动化运维是一个非常实用且高效的技能。这通常利用SSH协议结合 Python 的Paramiko库来实现,就像你在本地通过SecureCRT 或 Xshell 连接设备一样,只不过这个过程由 Python 脚本自动完成。
为了帮你实现这一目标,我为你整理了从环境准备到代码编写的完整操作指南。

🚀第一步:准备工作

在编写代码之前,你必须先在 eNSP 中完成设备的基础配置,确保 Python 脚本能够“连得上”设备。
1.网络连通性你需要确保你的宿主机(运行 Python 的电脑)与 eNSP中的设备处于同一个网段。
方法:通常使用“Cloud(云)”组件,将 eNSP 的内部网络桥接到你电脑的物理网卡或虚拟网卡(如 VMnet8)上。
验证:在电脑的 CMD 中 ping 设备的管理 IP,确保互通。
2.设备基础配置(以交换机为例)你需要开启设备的 SSH 服务,并创建登录账号。以下是常用的配置命令:
bash
编辑
#进入系统视图
system-view

1.配置管理IP(假设使用VLANIF 1)

interface Vlanif 1
ip address 192.168.10.2 255.255.255.0
quit

2.开启SSH服务

stelnet server enable

3.配置VTY用户界面

user-interface vty 0 4
authentication-mode aaa#使用AAA认证
protocol inbound ssh#允许SSH协议登录
user privilege level 15#权限级别为15(最高)
quit

4.配置AAA用户

aaa
local-user admin password cipher YourPassword123#创建用户和密码
local-user admin service-type ssh#服务类型为SSH
local-user admin privilege level 15#再次确认权限
quit

5.配置SSH用户(部分设备需要)

ssh user admin authentication-type password
ssh user admin service-type stelnet

6.生成RSA密钥对(SSH连接必需)

rsa local-key-pair create

🐍第二步:Python 脚本编写

Python 端主要使用Paramiko库来处理 SSH 连接。
1.安装依赖库在你的终端运行以下命令安装 Paramiko:
bash
编辑
pip install paramiko
2.核心脚本逻辑以下是一个自动化配置 VLAN 的示例脚本。你可以根据需要修改 commands 列表中的内容。
python
编辑
import paramiko
import time
def ssh_connect_and_config(host_ip, username, password, commands):

1.创建SSH客户端

ssh = paramiko.SSHClient()
#自动添加主机密钥(避免首次连接的确认提示)
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:

2.连接设备

ssh.connect(hostname=host_ip, username=username, password=password, port=22, timeout=5)
print(f"成功连接到 {host_ip}")

3.打开交互式Shell(重要,用于连续执行多条命令)

shell = ssh.invoke_shell()
time.sleep(1)#等待Shell初始化
#定义发送命令的函数
def send_cmd(cmd):
shell.send(cmd + '\n')
time.sleep(1)#等待命令执行完成
#接收输出(缓冲区大小可根据情况调整)
output = shell.recv(65535).decode('ascii')
print(output)

4.执行配置命令

send_cmd("system-view")#进入系统视图
#遍历命令列表
for cmd in commands:
send_cmd(cmd)

5.保存配置

send_cmd("save")
time.sleep(1)
send_cmd("y")#确认保存
print("配置任务完成!")
except Exception as e:
print(f"连接或配置失败: {e}")
finally:
ssh.close()

==================配置参数==================

HOST = "192.168.10.2"#设备IP
USER = "admin"#用户名
PASS = "YourPassword123"#密码
#定义需要执行的命令列表
config_commands = [
"vlan 10",
"description Python_Auto_Create",
"interface GigabitEthernet 0/0/1",
"port link-type access",
"port default vlan 10",
"quit"
]

==================执行脚本==================

if __name__ == "__main__":
ssh_connect_and_config(HOST, USER, PASS, config_commands)

📊关键配置对照表

为了方便你理解设备端的配置逻辑,我总结了以下关键配置项对照表:
表格

配置模块

关键命令<o:p>

作用说明<o:p>

接口IP<o:p>

interface Vlanif 1 + ip address<o:p>

为设备配置管理IP,确保Python能Ping通。<o:p>

VTY设置<o:p>

protocol inbound ssh<o:p>

必须指定允许SSH协议,否则默认只允许Telnet。<o:p>

AAA认证<o:p>

local-user ... service-type ssh<o:p>

定义本地用户及其服务类型为SSH。<o:p>

密钥对<o:p>

rsa local-key-pair create<o:p>

必须执行,否则SSH服务无法正常启动。<o:p>

💡进阶应用:自动化巡检

除了配置管理,Python 更强大的功能在于自动化巡检。你可以修改上述脚本,将 commands 替换为巡检命令,例如:
display ip interface brief (
查看接口状态)
display device (
查看设备板卡信息)
display version (
查看系统版本)
display cpu-usage (
查看CPU使用率)
display memory-usage (
查看内存使用率)
建议:你可以将这些命令的回显结果保存到本地的 .txt 或 .csv 文件中,实现无人值守的定时健康检查。

⚠️常见问题排查

如果连接失败,请按以下步骤检查:
网络不通:确认电脑和 eNSP 设备是否能互相 Ping 通。
服务未开:确认设备上是否执行了 stelnet server enable 和 rsa     local-key-pair create。
认证失败:检查用户名、密码是否正确,以及 AAA 配置是否完整。
VTY
限制:确认 user-interface vty 0 4 下配置的是 protocol inbound ssh。
通过以上步骤,你就可以成功利用 Python 实现 eNSP 设备的自动化运维了!
#ensp
#华为模拟器
#python

最新文章

随机文章