|

[Aruba DevNet 3강] 스위치 동시 설정 자동화: Windows 파이썬 vs Linux 앤서블(Ansible)

⏱️ 예상 읽기 시간: 약 6분 (6 min read)

2강에서 우리는 New Central API를 통해 데이터를 ‘읽어오는’ 자동화를 경험했습니다.
하지만 엔지니어의 심장을 뛰게 하는 것은 역시 ‘장비 설정을 내 마음대로 주무르는 것’이죠.

오늘은 Aruba CX 스위치를 대상으로, 두 가지 환경(Windows & Linux)에서 각각 어떻게 자동화를 구현하는지 비교하며 배워보겠습니다.

CX 스위치는 REST API를 지원하기 때문에 다양한 방식의 자동화 및 프로그래밍이 가능합니다.

[Aruba DevNet 3강] 스위치 동시 설정 자동화: Windows 파이썬 vs Linux 앤서블(Ansible) - image 3

1. 자동화 도구, 무엇을 쓸까? (Netmiko vs Ansible)

  • Windows 환경: 리눅스 설치가 부담스럽다면? 가장 대중적인 Netmiko 라이브러리가 정답입니다.
    파이썬만 있으면 어디서든 스위치에 SSH로 접속해 설정을 밀어 넣을 수 있습니다.
  • Linux 환경: 본격적인 IaC(Infrastructure as Code)를 원한다면? Ansible이 표준입니다.
    별도의 코딩 없이 YAML 파일만으로 수백 대의 스위치를 동시에 관리할 수 있습니다.

2. [Windows] 파이썬 Netmiko로 가볍게 시작하기

윈도우 사용자라면 지난 시간 세팅한 환경에서 라이브러리 하나만 더 추가하면 됩니다.

PowerShell
python -m pip install netmiko

[cx_config.py]

Python
from netmiko import ConnectHandler

# 스위치 접속 정보
device = {
    'device_type': 'aruba_os_cx',
    'host': '192.168.1.100',
    'username': 'admin',
    'password': 'Password!',
}

# 적용할 설정 명령축
commands = [
    'vlan 10',
    'name Guest_VLAN',
    'interface 1/1/1',
    'vlan access 10'
]

with ConnectHandler(**device) as net_connect:
    print("🚀 스위치 설정 중...")
    output = net_connect.send_config_set(commands)
    print(output)

3. [Linux] Ansible로 강력한 일괄 제어 구현하기

리눅스(Ubuntu/WSL) 환경이라면 Aruba에서 공식 제공하는 Ansible Collection을 사용하는 것이 가장 강력합니다.

[설치]

Bash
# 앤서블 및 Aruba 컬렉션 설치
sudo apt update && sudo apt install ansible -y
ansible-galaxy collection install arubanetworks.aos_cx

[inventory.ini] – 관리 대상 스위치 목록

INI
[cx_switches]
sw-leaf-01 ansbile_host=192.168.1.101
sw-leaf-02 ansbile_host=192.168.1.102

[cx_switches:vars]
ansible_user=admin
ansible_password=Password!
ansible_network_os=arubanetworks.aos_cx.aos_cx

[vlan_setup.yml] – 실제 “무엇을 할지” 정의한 플레이북

YAML
---
- name: Aruba CX 스위치 VLAN 일괄 설정
  hosts: cx_switches
  gather_facts: no
  tasks:
    - name: VLAN 10 생성 및 이름 부여
      arubanetworks.aos_cx.aos_cx_vlan:
        vlan_id: 10
        name: "DevNet_VLAN"
        state: present

[실행]

Bash
ansible-playbook -i inventory.ini vlan_setup.yml

4. 환경에 맞는 도구 선택법

“무조건 앤서블이 최고다”라고 할 수는 없습니다.

  • 1회성 작업이나 간단한 확인: 윈도우에서 Netmiko로 빠르게 스크립트를 짜는 것이 효율적입니다.
  • 정기적인 운영 및 표준화: 서버에 Ansible을 구축해두고 설정 파일(YAML)을 버전 관리(Git)하는 것이 유지보수에 유리합니다.

중요한 것은 어떤 도구를 쓰든 “내가 직접 콘솔에 접속해 타이핑하는 시간을 줄이는 것”입니다.


마치며

오늘 우리는 Windows와 Linux라는 두 개의 날개를 달았습니다.
이제 Aruba CX 스위치는 여러분의 코드 한 줄에 일사불란하게 움직일 준비가 되었습니다.

다음 4강에서는 “Aruba Central에서 Webhook과 슬랙(Slack) 연동”을 통해, 장애가 발생하면 장비가 직접 나에게 말을 거는 지능형 자동화를 만들어 보겠습니다!

유사 게시물

  • [ACSA 교육#30] Link Aggregation

    ⏱️ 예상 읽기 시간: 약 3분 (3 min read) 스위치는 다양한 VLAN상에 위치한 많은 장치에 대해 연결을 제공해야 합니다. 여기서 발생하는 모든 트래픽은 스위치간 링크를 공유하면서 서로 통신하게 됩니다. 따라서 복원력을 위해 스위치와 스위치간에 링크를 여러 개 연결하기도 합니다. 하지만, 그렇다고 두 스위치간 연결의 대역폭이…

  • 펌웨어 업데이트 중에도 트래픽이 끊기지 않는다고? ISSU 완벽 가이드

    ⏱️ 예상 읽기 시간: 약 5분 (5 min read) 네트워크 엔지니어로 입사해서 처음 겪는 당혹스러운 순간 중 하나는 선배가 이렇게 말할 때입니다. “오늘 밤 2시에 스위치 펌웨어 업데이트할 거니까 준비해.” 스마트폰이나 PC를 업데이트할 때면 항상 재부팅을 하면서 몇 분간 쓸 수 없게 됩니다. 네트워크 스위치도…

  • [ACSA 교육#23] 프레임 전송 과정

    ⏱️ 예상 읽기 시간: 약 4분 (4 min read) 앞서 VLAN과 802.1Q 등 Layer 2에서 대표되는 기술들을 알아보면서 프레임(Frame)을 함께 언급했습니다. 이전 포스팅에서도 OSI 계층에서 Layer 2에 해당하는 이더넷 프레임을 설명했던 적이 있습니다. 그래서 오늘은 실제 예제와 함께 이 프레임이 Layer 2 통신을 할 때…

  • [ACSA 교육#28] MSTP 이론과 지역 구성

    ⏱️ 예상 읽기 시간: 약 6분 (6 min read) 일반적인 Spanning Tree(Common Spanning Tree, CST)는 VLAN 수에 관계없이 전체 네트워크에 대해 하나의 스패닝 트리 인스턴스(Spanning Tree Instance)를 정의하게 됩니다. 모든 BPDU는 Untagged VLAN 1을 사용하여 VLAN에 대한 내용은 고려되지 않습니다. 또한, 로드 밸런싱이 없어, 대체…

  • [ACSA 교육#6] 이더넷 프레임

    ⏱️ 예상 읽기 시간: 약 5분 (5 min read) 지난 포스팅에서 TCP/IP Stack을 알아봤습니다. TCP/IP Stack과 OSI 7계층을 비교하면서 무슨 차이가 있는지 살펴보았는데요. 오늘은 OSI 7계층에서 Layer 1과 Layer 2에 해당하는 이더넷(Ethernet)을 알아볼까 합니다. 이더넷(Ethernet) 이더넷은 OSI 모델의 Layer 1과 Layer 2에서 사용되는 컴퓨터 네트워크…

  • NetEdit로 ArubaCX 스위치 관리하기

    ⏱️ 예상 읽기 시간: 약 7분 (7 min read) 우리의 네트워크는 점점 커지기 마련입니다. 기존 네트워크가 확장되기도 하고, 네트워크를 목적에 맞게 분리하거나 신규 비즈니스를 위해 새로운 네트워크를 만들기도 합니다. 이렇게 네트워크가 성장하기 된다면, 관리자의 입장에서 유지관리가 굉장히 어렵게 됩니다. 특히나 대규모의 네트워크의 변경은 모든 각각의…