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

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

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

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


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) 연동”을 통해, 장애가 발생하면 장비가 직접 나에게 말을 거는 지능형 자동화를 만들어 보겠습니다!