[Aruba DevNet 1강] 네트워크 엔지니어를 위한 자동화와 IaC 입문

오늘부터 조금 특별하고, 아주 강력한 기술 연재를 시작해보려 합니다.
바로 ‘Aruba 네트워크 자동화(Network Automation)’ 시리즈입니다.

네트워크 엔지니어들은 현장에서 이런 경험 한 번씩 있지 않으신가요?

“50대 스위치 VLAN 설정을 바꿔야 하는데, Putty 창 50개 띄워 놓고 Ctrl+C, Ctrl+V 하다가 실수해서 식은땀 흘린 적…”

“재고 조사한다고 AP 수백 대 시리얼 넘버를 일일이 타이핑 치던 기억…”

이제는 바뀌어야 할 때입니다.
HPE Aruba의 강력한 API와 자동화 도구를 활용하면, 며칠 걸릴 일을 커피 한 잔 마실 시간에 끝낼 수 있습니다.

그 첫 번째 시간, 오늘은 “도대체 왜 API를 써야 하는지”, 그리고 우리의 든든한 지원군인 “Aruba Developer Hub“에 대해 알아보겠습니다.


1. CLI의 시대에서 API의 시대로

우리는 그동안 CLI(Command Line Interface)에 너무 익숙했습니다.
하지만 클라우드 시대가 오면서 장비는 수백, 수천 대로 늘어났고, 사람이 일일이 치는 방식은 한계에 부딪혔습니다.

API (Application Programming Interface)가 왜 필요할까요?
  • 속도 (Speed): 사람이 1분에 1줄 칠 때, 프로그램은 1초에 1,000줄을 처리합니다.
  • 정확성 (Accuracy): 사람은 피곤하면 오타를 내지만, 코드는 거짓말을 하지 않습니다.
  • 확장성 (Scalability): 장비가 1대든 1,000대든, 코드는 단 한 번만 짜면 됩니다.

Aruba의 차세대 스위치 OS인 AOS-CX와 무선/통합 관리 플랫폼인 Aruba Central 기반의 AOS 10은 태생부터 “API First”의 마이크로 서비스 아키텍처로 설계되었습니다. 즉, 여러분이 화면에서 클릭하거나 명령어로 치는 모든 행위를 코드로 제어할 수 있다는 뜻입니다.

2. IaC (Infrastructure as Code)란 무엇인가?

자동화를 이야기할 때 빠지지 않는 용어가 바로 IaC(코드로 관리하는 인프라)입니다.
쉽게 말해, “네트워크 설정을 엑셀 파일이나 내 머릿속이 아닌, ‘코드 파일’로 관리하자”는 것입니다.

  • 기존 방식: 장비에 접속해서 conf t, vlan 10 입력
    → 누가 언제 바꿨는지 기록이 안 남음
  • IaC 방식: switch_config.yaml 파일에 “VLAN 10이 필요해”라고 적고 저장
    → 자동화 도구(Ansible 등)가 알아서 장비에 적용

특히 무선(WLAN)의 경우, AOS 10 아키텍처로 넘어오면서 컨트롤러라는 물리 머신 대신 클라우드(Central)가 그 역할을 합니다.
우리는 Central API에 “이런 SSID를 만들어줘”라고 요청만 하면, 전 세계에 흩어진 AP들에 설정이 자동으로 뿌려집니다.

3. [필독] 우리의 비밀 무기: Aruba Developer Hub

“그런데 개발자도 아닌데 그 복잡한 코드를 다 외워야 하나요?”

절대 아닙니다. 우리에게는 Aruba Developer Hub가 있으니까요.

이곳은 Aruba가 운영하는 공식 개발자 포털이자 백과사전입니다.

  1. API & Guide: “VLAN을 만들려면 어떤 코드를 보내야 하지?”에 대한 정답지와 초보자를 위한 학습자료가 있습니다.
  2. Code Exchange: Github에 사용자 또는 제조사에서 만든 샘플 코드를 볼 수 있습니다.
  3. Community: 전 세계 엔지니어들과 질의응답을 주고받을 수 있습니다.

더 깊이 있는 기능을 찾고 싶다면 가장 먼저 이곳을 방문해 보세요.

4. 백문이 불여일타(一打): Python으로 Aruba Central 말 걸어보기

이론은 여기까지 하고, 실제로 코드가 어떻게 생겼는지 맛만 볼까요?
자동화의 첫 관문, “Aruba Central에 접속해서 인증 토큰(Token) 받기”입니다.

[Central API 클라이언트 생성]

Central API 클라이언트 키는 GreenLake Cloud Platform 내의 작업영역(Workspace)에서 생성해야 합니다.

  • Central > 작업 영역 관리 (Manage Workspace) > 개인 API 클라이언트 (Personal API Client) 클릭
  • 개인 API 클라이언트 생성 (Create personal API Client) 클릭
  • API 클라이언트 이름과 API로 통신할 서비스 선택 (예: HPE Aruba Networking Central)
  • 생성된 Client ID와 Secret을 확인

🚨Secret 키는 다시 확인할 수 없기 때문에 별도로 적어두세요.
다만 절대 외부에 노출되지 않도록 주의하세요!

보다 자세한 Step-by-step 가이드는 아래 동영상을 참고하세요.

[준비사항]

  • Aruba Central 계정 (위에서 생성한 Client ID/Secret 필요)
  • Python이 설치된 PC

[샘플 코드: Hello Central!]

Python
import requests

# ==========================================
# 1. HPE GreenLake API 정보 입력
# ==========================================
# GreenLake 기반의 Central은 통합 SSO URL을 사용합니다.
token_url = "https://sso.common.cloud.hpe.com/as/token.oauth2"

# API 자격증명 (절대 외부에 노출 금지!)
# Client ID와 Secret은 GreenLake 대시보드에서 생성한 값을 넣으세요.
client_id = "나의_CLIENT_ID_입력"
client_secret = "나의_CLIENT_SECRET_입력"

# ==========================================
# 2. 토큰 요청 (POST)
# ==========================================
print("🔐 HPE GreenLake에 인증을 시도합니다...")

payload = {
    'grant_type': 'client_credentials',
    'client_id': client_id,
    'client_secret': client_secret
}

try:
    response = requests.post(token_url, data=payload)

    # ==========================================
    # 3. 결과 확인
    # ==========================================
    if response.status_code == 200:
        data = response.json()
        access_token = data['access_token']
        print("✅ 인증 성공! 액세스 토큰을 획득했습니다.")
        print(f"Token: {access_token[:20]}...") # 보안을 위해 앞부분만 출력
        
        # (참고) 실제 토큰은 2시간(7200초) 정도 유효합니다.
    else:
        print(f"❌ 인증 실패... 상태 코드: {response.status_code}")
        print("에러 메시지:", response.text)

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

인증 실패시

인증 성공시

이 짧은 코드가 실행되어 ‘토큰(Token)’을 받았다면, 여러분은 Aruba Central이라는 거대한 창고의 ‘마스터키’를 얻은 것입니다.

5. 자동화, 어디까지 가능할까? (활용 방안 확장)

오늘 얻은 토큰과 API 개념을 활용하면, 앞으로 루바루바 블로그에서 다음과 같은 마법을 부릴 수 있게 됩니다.

  1. 인벤토리 자동화 (Next Step!):
    “우리 회사 AP 500대의 시리얼 번호, 모델명, 라이선스 만료일을 클릭 한 번으로 엑셀 저장하기.”
  2. 무선 보안 강화 (AOS 10):
    “매주 월요일 아침 9시, Guest Wi-Fi 비밀번호를 랜덤하게 생성하여 자동 변경하고 관리자에게 메일 보내기.”
  3. 장애 대응 (ChatOps):
    “VIP 임원실 AP가 꺼지면, 관제 모니터 볼 필요 없이 내 슬랙(Slack)이나 팀즈로 즉시 알람 받기.”
  4. CX 스위치 대규모 배포 (Ansible):
    “새로 산 스위치 20대, 박스 뜯고 랜선만 꽂으면 자동으로 본사 표준 설정 적용 완료.”

6. 마치며: 개발자 된 엔지니어

처음엔 코드를 보는 게 낯설 수 있습니다.
하지만 걱정 마세요. 복잡한 이론보다는 “실무에 바로 써먹을 수 있는 예제” 위주로 하나씩 떠먹여 드리겠습니다.

다음 2강에서는 “Aruba Central에 등록된 모든 장비 리스트를 긁어와서 엑셀로 예쁘게 정리하는 법“을 다뤄보겠습니다.

단순 반복 업무에서 탈출해, 진짜 가치 있는 일에 집중하는 스마트한 엔지니어가 되어봅시다!