smithery/hbnu-nlplab

device_lifecycle_playbook

장비 전체 라이프사이클 관리 워크플로우

Installation

$ npx skills add smithery/hbnu-nlplab --skill device-lifecycle-playbook

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery/hbnu-nlplab.

npx skills add smithery/hbnu-nlplab

Browse all from smithery/hbnu-nlplab

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 3,234 B
  • docs SUMMARY.md 88 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

Device Lifecycle Playbook

장비 생성부터 삭제까지 전체 라이프사이클을 관리하는 워크플로우입니다.

1. 전체 라이프사이클 개요

graph LR
    A[장비 생성] --> B[클라우드 연결]
    B --> C[NSO 등록]
    C --> D[SSH 키 가져오기]
    D --> E[설정 동기화]
    E --> F[운영]
    F --> G[NSO 등록해제]
    G --> H[장비 삭제]

2. 장비 생성 (PNETLab)

새 장비 추가

lab_manage("add_node", {
    "name": "NewRouter",
    "template": "vios",  # vios, csr1000v, xrv9k 등
    "left": 400,  # X 좌표
    "top": 300    # Y 좌표
})

장비 시작

lab_manage("start_node", {"name": "NewRouter"})

3. 클라우드 연결

네트워크(Cloud) 추가 (필요시)

lab_manage("add_network", {
    "name": "Mgmt-Cloud",
    "net_type": "pnet2"  # pnet2 = Cloud2
})

인터페이스 연결

lab_manage("connect_interface", {
    "device_name": "NewRouter",
    "interface_id": 0,        # Gi0/0 = 0, Gi0/1 = 1 ...
    "network_name": "Cloud1"  # 연결할 네트워크 이름
})

4. NSO 등록

장비 등록

network_change("register_device", device_info={
    "name": "NewRouter",
    "oob_ip": "192.168.1.100",
    "port": 22,
    "authgroup": "default",
    "ned_id": "cisco-ios-cli-6.110",
    "protocol": "ssh"
})

SSH 호스트 키 가져오기

network_change("fetch_host_keys", device="NewRouter")

설정 동기화

network_change("sync_from", device="NewRouter")

5. 장비 삭제 워크플로우

⚠️ 삭제 작업은 역순으로 진행해야 합니다!

5.1 NSO 등록 해제

network_change("delete_device", device="OldRouter")

5.2 인터페이스 연결 해제

lab_manage("disconnect_interface", {
    "device_name": "OldRouter",
    "interface_id": 0
})

5.3 장비 중지 및 삭제

lab_manage("stop_node", {"name": "OldRouter"})
lab_manage("delete_node", {"name": "OldRouter"})

6. 승인이 필요한 작업

작업 위험도 승인 필요
add_node Low ❌
delete_node High ✅ 권장
register_device Medium ❌
delete_device High ✅ 권장
connect_interface Low ❌
disconnect_interface Medium ❌

7. 흔한 오류

"Node not found"

→ labmanage("showinventory") 로 정확한 장비 이름 확인

"Device already exists"

→ 장비가 이미 NSO에 등록됨. network_query("device") 로 확인

"Sync-from failed"

  1. 장비가 시작되었는지 확인: labmanage("getstatus", {"device": "..."})
  2. SSH 연결 가능한지 확인
  3. networkchange("fetchhost_keys", device="...") 먼저 실행

"Connection refused"

→ 장비가 아직 부팅 중일 수 있음. 1-2분 대기 후 재시도