본문 바로가기

네트워크/네트워크 자동화

[네트워크 자동화] - Netmiko 소개 및 활용

728x90

 

● Netmiko 라이브러리 소개

  - Netmiko 라이브러리는 SSH/TELNET 프로토콜을 사용하여 네트워크 장비를 CLI기반으로 접근하여 정보를 수집하거나 명령어를 전달 할 수 있게하는 라이브러리 입니다. 

 

  ○ Netmiko 라이브러리 설치

pip install netmiko

  ○ Netmiko 라이브러리 사용 예제

    1) netmiko 라이브러리 선언

from netmiko import ConnectHandler

    2) 장비 정보 입력

      - device_type, ip, username, password, secret, verbose 입력

if __name__ == "__main__":
    device = {
        "device_type": "cisco_ios",
        "ip": "DEVICE IP",
        "username": "DEVICE ID",
        "password": "DEVICE PASSWORD",
        "secret": "DEVICE ENABLE PASSWORD",
        "verbose" : "True"
    }

    3) 장비 접근 및 접근 가능여부 확인 코드 작성

      - with 문을 사용하면 disconnect 코드를 작성 불필요. 

def Net_Connect(device):
    with ConnectHandler(**device) as net_connect:
        alive = net_connect.is_alive()
        print(alive)

    4) 전체 코드

from netmiko import ConnectHandler

def Net_Connect(device):
    with ConnectHandler(**device) as net_connect:
        alive = net_connect.is_alive()
        print(alive)
    
    
if __name__ == "__main__":
    device = {
        "device_type": "cisco_ios",
        "ip": "DEVICE IP",
        "username": "DEVICE ID",
        "password": "DEVICE PASSWORD",
        "secret": "DEVICE ENABLE PASSWORD",
        "verbose" : "True"
    }
    
    Net_Connect(device)
    
    # device 접근 가능할 경우: True
    # device 접근 불가능할 경우: False

 

● Netmiko 라이브러리 참고 URL

  - (Netmiko 프로젝트 홈페이지) https://pypi.org/project/netmiko/

  - (Netmiko 기술 블로그) https://pynet.twb-tech.com/blog/netmiko-python-library.html

  - (Netmiko 사용 예제) https://github.com/ktbyers/netmiko/blob/develop/EXAMPLES.md

 

 

728x90