自动化运维初级村-Netmiko-巡检-3

本文介绍了如何使用Python的Netmiko库进行自动化运维,特别是SSHExecutor类的实现。内容包括初始化连接、获取执行设备/命令、执行操作、保存结果以及关闭连接的详细步骤。通过实例展示了SSHExecutor如何执行命令、处理异常和日志记录,强调了面向对象编程和代码可维护性的重要性。
摘要由CSDN通过智能技术生成

摘要

上一章节已经完成了命令筛选和设备筛选部分的代码,接下来就是将其整合到执行器中,今天的章节中,我会在视频里带领大家完善SSHExecutor,大家也可以体会一下写代码的过程,以及其中体现的编程思想,对后续的学习和发展会有很大帮助。

SSHExecutor

这里再次巩固一下整体巡检的设计图,如下所示:

image-20221209213330471

初始化连接

之前章节已经实现的SSHExecutor初始化代码如下:

class SSHExecutor:
    def __init__(
        self,
        host: str = "",
        username: str = "",
        password: str = None,
        secret: str = "",
        port: str = None,
        device_type: str = "",
        conn_timeout: int = 10,
        auth_timeout: int = None,
        banner_timeout: int = 15,
        log_file: str = "ssh_executor.log",
        log_level: str = None,
        log_format: str = None,
    ) -> None:
        self.host = host
        self.port = port
        self.username = username
        self.password = password
        self.secret = secret
        self.device_type = device_type
        self.conn_timeout = conn_timeout
        self.auth_timeout = auth_timeout
        self.banner_timeout = banner_timeout
        
        import logging
        if log_level is None:
            log_level = logging.ERROR
        if log_format is None:
            log_format = "%(asctime)s %(levelname)s %(name)s %(message)s"

        logging.basicConfig(filename=log_file, level=log_level, format=log_format)
        self.logger = logging.getLogger(__name__)
        self.conn = self.connect()

    def connect(self):
        try:
            conn = ConnUnify(**self.__dict__)
            msg = f"Netmiko connection successful to {self.host}:{self.port}"
            self.logger.info(msg)
            return conn
        except Exception as e:
            self.logger.error(str(e))
    
    def execute(self):
        pass
        
    def fetch_object(self):
        pass
        
    def fetch_action(self):
        pass

获取执行设备/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值