python自动化运维网络设备

python自动化运维网络设备_第1张图片

python自动化运维网络设备_第2张图片

sw1:

二层  vlan  Trunk  STP  Ether-trunk

sw1

[sw1]vlan batch 100

[sw1] int g0/0/1

[sw1-GigabitEthernet0/0/1]port link-type trunk

[sw1-GigabitEthernet0/0/1]port trunk allow-pass vlan 100

python自动化运维网络设备_第3张图片

[sw1-GigabitEthernet0/0/1]int g0/0/2

[sw1-GigabitEthernet0/0/2]port link-type trunk

[sw1-GigabitEthernet0/0/2] port trunk allow-pass vlan 100

python自动化运维网络设备_第4张图片

[sw1-GigabitEthernet0/0/2]int g0/0/24

[sw1-GigabitEthernet0/0/24]port link-type trunk

[sw1-GigabitEthernet0/0/24]port trunk allow-pass vlan 100

python自动化运维网络设备_第5张图片

[sw1]interface g 0/0/3

[sw1-GigabitEthernet0/0/3]port link-type  access

[sw1-GigabitEthernet0/0/3]port  default vlan 100

python自动化运维网络设备_第6张图片

[sw1]stp enable

[sw1]stp root primary

sw2上

[sw2]vlan batch 100

[sw2]int g0/0/1

[sw2-GigabitEthernet0/0/1] port link-type trunk

[sw2-GigabitEthernet0/0/1] port trunk allow-pass vlan 100

python自动化运维网络设备_第7张图片

[sw2-GigabitEthernet0/0/1]int g0/0/2

[sw2-GigabitEthernet0/0/2] port link-type trunk

[sw2-GigabitEthernet0/0/2] port trunk allow-pass vlan 100

python自动化运维网络设备_第8张图片

[sw2-GigabitEthernet0/0/2]int g0/0/24

[sw2-GigabitEthernet0/0/24] port link-type trunk

[sw2-GigabitEthernet0/0/24] port trunk allow-pass vlan 100

python自动化运维网络设备_第9张图片

sw3

[sw3]vlan batch 100

[sw3]int g0/0/1

[sw3-GigabitEthernet0/0/1]port link-type trunk

[sw3-GigabitEthernet0/0/1] port trunk allow-pass vlan 100

python自动化运维网络设备_第10张图片

[sw3-GigabitEthernet0/0/1]int g0/0/2

[sw3-GigabitEthernet0/0/2]port link-type trunk

[sw3-GigabitEthernet0/0/2] port trunk allow-pass vlan 100

python自动化运维网络设备_第11张图片

Sw4     

[sw4]vlan batch 100

[sw4]int g0/0/1

[sw4-GigabitEthernet0/0/1] port link-type trunk

[sw4-GigabitEthernet0/0/1] port trunk allow-pass vlan 100

python自动化运维网络设备_第12张图片

[sw4-GigabitEthernet0/0/1]int g0/0/2

[sw4-GigabitEthernet0/0/2] port link-type trunk

[sw4-GigabitEthernet0/0/2] port trunk allow-pass vlan 100

python自动化运维网络设备_第13张图片

三层  IP地址

[sw1]interface  vlanif  100

[sw1-Vlanif100]ip  address 192.168.100.1 24

python自动化运维网络设备_第14张图片

[sw2]int vlan 100

[sw2-Vlanif100]ip address 192.168.100.2 24

python自动化运维网络设备_第15张图片

[sw3]int vlan 100

[sw3-Vlanif100]ip address 192.168.100.3 24

python自动化运维网络设备_第16张图片

[sw4]int vlan 100

[sw4-Vlanif100]ip address 192.168.100.4 24

python自动化运维网络设备_第17张图片

交换机部署ssh  

sw1 

[sw1]dsa local-key-pair create

python自动化运维网络设备_第18张图片

#认证形式  密码认证

[sw1]ssh user dyx authentication-type password

#登录类型

[sw1]ssh user dyx service-type stelnet

#开启ssh登录

[sw1]stelnet server enable

#开放vty 端口,能被远程登录

#开放编号0 1 2 3 4 的vty端口,同时支持五个远程用户连接

[sw1]user-interface vty 0 4

#认证模式为aaa---àauthentication 认证(谁能登录进来)

#              -----àauthorizathon授权 (谁进来能干什么)

#             -----à  according 审计 (谁进来干了什么)

[sw1-ui-vty0-4]authentication-mode aaa

#登录进来的协议是ssh

[sw1-ui-vty0-4] protocol inbound ssh

python自动化运维网络设备_第19张图片

sw1上

[sw1]aaa

[sw1-aaa]local-user dyx password cipher Huawei@123

Info: Add a new user.

#授权

[sw1-aaa]local-user dyx privilege level 15

[sw1-aaa]local-user dyx service-type ssh

python自动化运维网络设备_第20张图片

python自动化运维网络设备_第21张图片

python自动化运维网络设备_第22张图片

python自动化运维网络设备_第23张图片 python自动化运维网络设备_第24张图片

在sw2上

[sw2]ssh user dyx authentication-type  password

Info: Succeeded in adding a new SSH user.

[sw2]ssh user dyx service-type stelnet

[sw2]stelnet server enable

Info: Succeeded in starting the Stelnet server.

[sw2]user-interface vty 0 4

[sw2-ui-vty0-4]authentication-mode aaa

[sw2-ui-vty0-4]protocol inbound ssh

[sw2-ui-vty0-4]q

[sw2]aaa

[sw2-aaa]local-user dyx password cipher Huawei@123

Info: Add a new user.

[sw2-aaa]local-user dyx privilege level 15

[sw2-aaa]local-user dyx service-type ssh

python自动化运维网络设备_第25张图片

python自动化运维网络设备_第26张图片

在sw3上

[SW3]ssh user dyx authentication-type  password

Info: Succeeded in adding a new SSH user.

[SW3]ssh user dyx service-type stelnet

[SW3]stelnet server enable

Info: Succeeded in starting the Stelnet server.

[SW3]user-interface vty 0 4

[SW3-ui-vty0-4]authentication-mode aaa

[SW3-ui-vty0-4]protocol inbound ssh

[SW3-ui-vty0-4]q

[SW3]aaa

[SW3-aaa]local-user dyx password cipher Huawei@123

Info: Add a new user.

[SW3-aaa]local-user dyx privilege level 15

[SW3-aaa]local-user dyx service-type ssh

python自动化运维网络设备_第27张图片

在sw4上

[SW4]ssh user dyx authentication-type  password

Info: Succeeded in adding a new SSH user.

[SW4]ssh user dyx service-type stelnet

[SW4]stelnet server enable

Info: Succeeded in starting the Stelnet server.

[SW4]user-interface vty 0 4

[SW4-ui-vty0-4]authentication-mode aaa

[SW4-ui-vty0-4]protocol inbound ssh

[SW4-ui-vty0-4]q

[SW4]aaa

[SW4-aaa]local-user dyx password cipher Huawei@123

Info: Add a new user.

[SW4-aaa]local-user dyx privilege level 15

[SW4-aaa]local-user dyx service-type ssh

python自动化运维网络设备_第28张图片

实例一:

python自动化运维网络设备_第29张图片

python自动化运维网络设备_第30张图片

import paramiko
import time

# 1.创建SSH客户端对象
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

# 使用客户端 ,导入参数: hostname="192.168.100.1", username="dyx", password="Huawei@123"
ssh.connect(hostname="192.168.100.1", username="dyx", password="Huawei@123")

command = ssh.invoke_shell()  # 创建一个 命令对象,调用 shell

# 给设备发送配置命令(将发送的命令,字符串的形式转换成 utf-8 格式的二进制,传递给网络设备)
command.send("system-view  \n".encode())
command.send("sys HSW1 \n".encode())

time.sleep(1)  # 发送完命令,需要一个延时,等待设备 将回显值回传,等待时间不能太短
output = command.recv(65535)  # 接收服务器的返回数据
print(output.decode()) # 将接收的数据解码

ssh.close()  # 程序结束了,关闭连接

python自动化运维网络设备_第31张图片

X-shell

python自动化运维网络设备_第32张图片

实例二:

python自动化运维网络设备_第33张图片

import paramiko
import time

# 1.创建SSH客户端对象
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

# 使用客户端 ,导入参数: hostname="192.168.100.2", username="dyx", password="Huawei@123"
ssh.connect(hostname="192.168.100.2", username="dyx", password="Huawei@123")

command = ssh.invoke_shell()  # 创建一个 命令对象,调用 shell

# 读取配置文件,将读取到的每一行,发送给 设备
with open('SW1.cfg', "r", encoding='utf-8') as f:
    while True:
        content = f.readline()
        if not content:
            break
        command.send(content.encode())

print("please wait a monment...")
time.sleep(5)  # 发送完命令,需要一个延时,等待设备 将回显值回传,等待时间不能太短
output = command.recv(65535)  # 接收服务器的返回数据
print(output.decode())  # 将接收的数据解码


ssh.close()  # 程序结束了,关闭连接

python自动化运维网络设备_第34张图片

python自动化运维网络设备_第35张图片

python自动化运维网络设备_第36张图片

python自动化运维网络设备_第37张图片

python自动化运维网络设备_第38张图片

python自动化运维网络设备_第39张图片

运行后

python自动化运维网络设备_第40张图片

python自动化运维网络设备_第41张图片

python自动化运维网络设备_第42张图片

实例三:

python自动化运维网络设备_第43张图片

python自动化运维网络设备_第44张图片

python自动化运维网络设备_第45张图片

python自动化运维网络设备_第46张图片

import paramiko
import time
from device_info import *

# 需要一个数据库,存储着 各个设备的信息
for item in range(len(datebase)):  # range(len(datebase)---> 0-->3
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect(hostname=datebase[item]["ip_add"], username=datebase[item]["username"],
                password=datebase[item]["passwd"])
    command = ssh.invoke_shell()
    with open(datebase[item]["path"], "r", encoding='utf-8') as f:
        while True:
            content = f.readline()
            if not content:
                break
            command.send(content.encode())

    print("please wait a monment...")
    time.sleep(5)
    output = command.recv(65535)
    print(output.decode())
    # 程序运行结束提示!
    done()

    ssh.close()

python自动化运维网络设备_第47张图片

dict_SW1 = {"ip_add": "192.168.100.3", "username": "dyx", "passwd": "Huawei@123", "path": "SW1.cfg"}
dict_SW2 = {"ip_add": "192.168.100.4", "username": "dyx", "passwd": "Huawei@123", "path": "SW2.cfg"}

datebase = [dict_SW1, dict_SW2]


def done():
    print("""
                              
     8                    
     8                    
.oPYo8 .oPYo. odYo. .oPYo.
8    8 8    8 8' `8 8oooo8
8    8 8    8 8   8 8.    
`YooP' `YooP' 8   8 `Yooo'
:.....::.....:..::..:.....:
:::::::::::::::::::::::::::
:::::::::::::::::::::::::::
    """)

python自动化运维网络设备_第48张图片

运行后

python自动化运维网络设备_第49张图片

python自动化运维网络设备_第50张图片

python自动化运维网络设备_第51张图片

python自动化运维网络设备_第52张图片

python自动化运维网络设备_第53张图片

python自动化运维网络设备_第54张图片

 python自动化运维网络设备_第55张图片

你可能感兴趣的:(python,ssh,linux,网络)