Cisco 스위치 자동화: Python과 SSH로 구현하는 Network Automation 방법
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

Cisco 스위치 구성 자동화: Python과 SSH를 활용한 방법

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

DevOps

대상자

  • 네트워크 엔지니어, Python 개발자, 자동화 도구 사용자
  • 중간 난이도: Python 기초와 네트워킹 지식 필요

핵심 요약

  • Python과 paramiko 라이브러리를 사용해 Cisco 스위치의 SSH 기반 구성 자동화 구현
  • OOP(객체 지향 프로그래밍)를 적용한 Switch, SSHConnection, ConfigPusher 클래스 설계로 모듈화 및 유지보수성 향상
  • Cisco Modeling Labs(CML) 환경 설정과 venv 가상 환경 구성이 필수적

섹션별 세부 요약

1. 프로젝트 목적 및 기술 스택

  • Minecraft 서버 자동 배포를 위한 물리 네트워크 구축 필요성
  • REST API 대신 SSH 기반 자동화 선택: 하드웨어 제한으로 인한 현대적 접근 불가
  • paramiko~=3.5.1 버전 사용 권장

2. OOP 기반 코드 설계

  • 3개의 주요 클래스 설계:

- Switch: 스위치 정보 저장 (hostname, port, username)

- SSHConnection: paramiko.SSHClient를 활용한 SSH 연결 처리

- ConfigPusher: 구성 파일을 스위치에 전달

  • 객체 간 상호작용: Main 클래스에서 객체 생성 및 실행 조율

3. 환경 설정 및 실행

  • Python 가상 환경 생성:

```bash

python3 -m venv myvenv

source myvenv/bin/activate

pip3 install -r requirements.txt

```

  • CML 설정: 외부 커넥터 추가 및 스위치 연결, VLAN 1 인터페이스에 DHCP IP 할당

4. 구성 파일 전송 및 테스트

  • ConfigPusher.push() 메서드: 구성 파일(cisco_configs/asw1.txt)의 각 라인을 SSH로 전송
  • 사용자 생성 및 SSH 설정:

```bash

username cisco privilege 15 secret your_password

ip ssh version 2

```

  • 테스트 결과: 호스트명 변경(hostname PythonIsCool) 및 기본 게이트웨이 펑셔닝 확인

결론

  • OOP 설계를 통해 코드 재사용성과 확장성 향상
  • CML 환경 설정paramiko 라이브러리 사용이 필수적
  • SSH 기반 자동화는 네트워크 장비 관리 효율성 극대화 가능