使用 Python 脚本批量配置交换机

以下是一个使用 Python 编写的脚本,用于批量配置多个交换机。脚本使用 paramiko 库连接 SSH,并从配置文件中读取配置命令。

import paramiko

# 配置文件列表
config_files = ['switch1.txt', 'switch2.txt', 'switch3.txt']

# 连接 SSH 函数
def connect_ssh(ip, username, password):
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect(ip, port=22, username=username, password=password)
    return ssh

# 配置交换机函数
def configure_switch(ip, username, password, config_file):
    # 连接 SSH
    ssh = connect_ssh(ip, username, password)
    print(f'连接到交换机 {ip}')

    # 打开配置文件
    with open(config_file, 'r') as f:
        config_commands = f.readlines()

    # 执行配置命令
    for command in config_commands:
        ssh.exec_command(command.strip())

    # 关闭 SSH 连接
    ssh.close()
    print(f'配置交换机 {ip} 完成')

# 主函数
def main():
    # 交换机信息
    switches = [
        {'ip': '192.168.1.1', 'username': 'admin', 'password': 'password1'},
        {'ip': '192.168.1.2', 'username': 'admin', 'password': 'password2'},
        {'ip': '192.168.1.3', 'username': 'admin', 'password': 'password3'}
    ]

    # 遍历交换机进行配置
    for switch in switches:
        ip = switch['ip']
        username = switch['username']
        password = switch['password']

        # 遍历配置文件进行配置
        for config_file in config_files:
            configure_switch(ip, username, password, config_file)

# 执行主函数
if __name__ == '__main__':
    main()

脚本流程:

  1. 定义配置文件列表: config_files 存储要应用的配置文件名。
  2. 连接 SSH 函数: connect_ssh 函数使用 paramiko 库连接到交换机。
  3. 配置交换机函数: configure_switch 函数连接到交换机,读取配置文件中的命令并执行。
  4. 主函数: main 函数包含交换机信息和配置文件信息,遍历每个交换机并执行配置。

使用说明:

  • 确保安装 paramiko 库:pip install paramiko
  • config_files 列表中的文件名替换为实际的配置文件名。
  • 修改 switches 列表中的 IP 地址、用户名和密码。
  • 修改配置文件内容以匹配您的实际配置需求。

示例配置文件 (switch1.txt):

interface GigabitEthernet0/0
  ip address 10.10.10.1 255.255.255.0
  no shutdown

注意:

  • 该脚本仅供参考,实际应用中需要根据具体环境和需求进行调整。
  • 使用 SSH 连接时,请确保安全设置,例如使用 SSH 密钥或限制访问权限。
  • 在进行任何配置更改之前,请做好备份工作。
Python 批量配置交换机脚本

原文地址: https://www.cveoy.top/t/topic/dxkm 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录