장비 전체 라이프사이클 관리 워크플로우
장비 생성부터 삭제까지 전체 라이프사이클을 관리하는 워크플로우입니다.
graph LR
A[장비 생성] --> B[클라우드 연결]
B --> C[NSO 등록]
C --> D[SSH 키 가져오기]
D --> E[설정 동기화]
E --> F[운영]
F --> G[NSO 등록해제]
G --> H[장비 삭제]
lab_manage("add_node", {
"name": "NewRouter",
"template": "vios", # vios, csr1000v, xrv9k 등
"left": 400, # X 좌표
"top": 300 # Y 좌표
})
lab_manage("start_node", {"name": "NewRouter"})
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" # 연결할 네트워크 이름
})
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"
})
network_change("fetch_host_keys", device="NewRouter")
network_change("sync_from", device="NewRouter")
⚠️ 삭제 작업은 역순으로 진행해야 합니다!
network_change("delete_device", device="OldRouter")
lab_manage("disconnect_interface", {
"device_name": "OldRouter",
"interface_id": 0
})
lab_manage("stop_node", {"name": "OldRouter"})
lab_manage("delete_node", {"name": "OldRouter"})
| 작업 | 위험도 | 승인 필요 |
|---|---|---|
add_node |
Low | ❌ |
delete_node |
High | ✅ 권장 |
register_device |
Medium | ❌ |
delete_device |
High | ✅ 권장 |
connect_interface |
Low | ❌ |
disconnect_interface |
Medium | ❌ |
→ lab_manage("show_inventory") 로 정확한 장비 이름 확인
→ 장비가 이미 NSO에 등록됨. network_query("device") 로 확인
lab_manage("get_status", {"device": "..."})network_change("fetch_host_keys", device="...") 먼저 실행→ 장비가 아직 부팅 중일 수 있음. 1-2분 대기 후 재시도