|

[Aruba DevNet 2강] 엑셀 지옥 탈출! 파이썬으로 3초 만에 장비 자산 현황 정리하기

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

지난 1강에서 우리는 Aruba Central API의 문을 여는 ‘액세스 토큰(Access Token)’을 받는 데 성공했습니다.
혹시 아직 안 보셨다면 1강을 먼저 보고 오시는 걸 추천해 드립니다!

오늘은 그 토큰을 이용해 진짜 ‘돈이 되고 시간이 되는’ 작업을 해보겠습니다.
바로 네트워크 관리자의 영원한 숙제, 자산 관리(Inventory)입니다.

“팀장님: 현재 운영 중인 AP 전체 리스트, 시리얼 번호, 라이선스 만료일 포함해서 엑셀로 정리해 주세요. 30분 내로요.”

Aruba Central 대시보드에서 일일이 확인하고 복사 붙여넣기 하실 건가요?
오늘 보여드릴 파이썬 스크립트만 있으면, 엔터 한 번 치고 커피 한 모금 마시기도 전에 엑셀 파일이 뚝딱 만들어집니다.


1. 오늘의 목표

  • 목표: Aruba Central에 등록된 모든 장비(AP, 스위치, 게이트웨이) 정보를 가져와서
  • 가공: 내가 필요한 정보(이름, 모델명, 시리얼, IP, 상태)만 골라낸 뒤
  • 결과: 깔끔한 .xlsx 엑셀 파일로 저장합니다.

이 과정에서 우리는 Pandas(판다스)라는 아주 강력한 파이썬 라이브러리를 사용할 겁니다.
엑셀을 다루는 데이터 분석가들이 쓰는 도구인데, 우리 같은 네트워크 엔지니어에게도 아주 유용합니다.

2. 준비 운동: 개발자 허브에서 API 찾기

코딩하기 전에 Aruba Developer Hub에서 어떤 API를 써야 할지 찾아봐야겠죠?

우리가 사용할 API는 Network Monitoring 카테고리에 있는 List Devices입니다.

  • API Endpoint: /network-monitoring/v1alpha1/devices

“왜 v1alpha1 인가요?”

Aruba Central이 New Central로 진화하면서 API 역시 더욱 표준화된 구조를 갖추기 시작했습니다.
v1alpha1은 최신 네트워크 모니터링 기능을 가장 빠르게 반영하는 엔드포인트입니다.

기존 v2 API보다 응답 속도가 빠르고, 향후 AOS 10 기반의 마이크로서비스 아키텍처와 완벽하게 통합됩니다.

  • Method: GET
  • 기능: 등록된 장비들의 상태와 세부 정보를 리스트로 반환합니다.

3. [실습] 파이썬으로 New Central 데이터 엑셀 저장하기

이번 실습에서는 엑셀 분석의 표준인 Pandas 라이브러리를 사용합니다.

[사전 준비]

Bash
pip install requests pandas openpyxl

[New Central 전용 파이썬 스크립트]

Python
import requests
import pandas as pd
from datetime import datetime

# 1. New Central 접속 정보
# 1강에서 발급받은 토큰과 본인의 리전 주소를 입력하세요.
ACCESS_TOKEN = "YOUR_ACCESS_TOKEN"
BASE_URL = "https://de1.api.central.arubanetworks.com"
API_PATH = "/network-monitoring/v1alpha1/devices"

print(f"🚀 New Central API 호출 시작: {BASE_URL}")

try:
    # 2. 데이터 요청
    response = requests.get(f"{BASE_URL}{API_PATH}", headers=headers)
    
    if response.status_code == 200:
        raw_data = response.json()
        # New Central v1alpha1은 보통 'items' 키에 장비 목록이 담깁니다.
        devices = raw_data.get('items', [])
        print(f"✅ 총 {len(devices)}대의 장비 데이터를 수신했습니다.")
        
        # 3. 데이터 가공 (원하는 컬럼 매핑)
        device_list = []
        for dev in devices:
            device_list.append({
                "장비이름": dev.get("deviceName"),
                "시리얼": dev.get("serialNumber"),
                "모델": dev.get("model"),
                "IP주소": dev.get("ipv4"),
                "상태": dev.get("status"),
                "사이트": dev.get("siteName"),
                "MAC주소": dev.get("macAddress")
            })
            
        # 4. 판다스를 이용한 엑셀 저장
        df = pd.DataFrame(device_list)
        filename = f"NewCentral_Inventory_{datetime.now().strftime('%Y%m%d')}.xlsx"
        df.to_excel(filename, index=False)
        print(f"🎉 파일 저장 완료: {filename}")
        
    else:
        print(f"❌ 실패 (코드 {response.status_code}): {response.text}")

except Exception as e:
    print(f"❌ 오류 발생: {e}")

스크립트가 정상적으로 실행되면, 아래와 같은 메시지와 함께 엑셀 파일이 추출됩니다.

[Aruba DevNet 2강] 엑셀 지옥 탈출! 파이썬으로 3초 만에 장비 자산 현황 정리하기 - image 2

4. 마치며

오늘은 New Central이라는 최신 환경에서 데이터를 추출해 보았습니다.
이제 여러분의 책상 위에는 수동으로 정리한 엑셀 대신, 코드가 생성한 완벽한 자산 리스트가 놓여 있을 것입니다.

다음 3강에서는 이렇게 모은 데이터를 바탕으로, Ansible을 이용해 실제 장비(CX 스위치)에 설정을 밀어 넣는 ‘진짜 자동화’의 세계로 떠나보겠습니다!

유사 게시물

  • [ACMA 교육#5] AOS 8 특징

    ⏱️ 예상 읽기 시간: 약 10분 (10 min read) 지난 포스팅에서 AOS 8 운영체제의 아키텍처에 대해 알아보았습니다. 무선 네트워크 인프라가 점점 활성화되고 보편화되면서 무선 인프라의 안정성과 성능이 점차 중요해지고 있습니다. 특히나 기업들이 업무 용도로 기존 유선 LAN이 아닌 Wi-Fi로 사용하는 Digital Workspace, Mobile Office 등의…

  • [ACSA 교육#30] Link Aggregation

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

  • [ACP-DC 교육#13] Spine-Leaf 아키텍처

    ⏱️ 예상 읽기 시간: 약 8분 (8 min read) Spine-Leaf 아키텍처는 코어 역할을 하는 Spine 스위치, 액세스 계층인 Leaf 스위치, 그리고 데이터센터의 계산 및 저장 자원을 담당하는 수많은 엔드포인트로 구성됩니다. 이 구조는 확장성이 매우 뛰어나고 효율적이며, 저지연(Low-latency) 통신에 최적화되어 있어 고성능 네트워크가 필요한 현대 데이터센터…

  • [ACSA 교육#25] Spanning Tree Protocol

    ⏱️ 예상 읽기 시간: 약 4분 (4 min read) 지난 번 네트워크 이중화(Redundancy)를 얘기하면서 그로 인해 발생될 수 있는 Loop에 대한 것도 얘기하였습니다. 그에 대한 대안으로 STP(Spanning Tree Protocol)을 간략히 언급했는데요. 오늘 그럼, Spanning Tree Protocol에 대해 자세히 알아보도록 하겠습니다. STP(Spanning Tree Protocol) Overview STP…

  • [ACSA 교육#34] VRRP

    ⏱️ 예상 읽기 시간: 약 10분 (10 min read) 이전 포스팅에서 기본 게이트웨이(Default Gateway)에 대해 알아봤었습니다. 엔드 포인트는 하나의 기본 게이트웨이만 가질 수 있습니다. 그리고 그것은 단일 장애 포인트가 될 수 있습니다. 아래 그림을 살펴보면, Core-1에 장애가 발생할 경우, PC-1을 비롯한 Core-1을 기본 게이트웨이로 사용하는…