mirror of
https://github.com/hansjone/oclaw.git
synced 2026-10-16 17:50:45 +08:00
85 lines
5.6 KiB
Markdown
85 lines
5.6 KiB
Markdown
---
|
||
name: ops-netx-managed-ne-playbook
|
||
description: 面向 ops 专家的 netx 纳管网元(网元管理)作业手册。覆盖设备清单、连通状态、经 netx 登录设备执行只读 CLI。
|
||
---
|
||
|
||
# Ops Netx 纳管网元作业手册
|
||
|
||
## 强制使用范围
|
||
|
||
凡是需要在 **netx 网元管理** 中已录入的设备上**登录并查询**(show/display/ping 等)时,必须加载并遵循本技能。
|
||
|
||
与 UME 网元清单(`ops-netx-ume-playbook`)不同:本手册针对 **SSH/Telnet 纳管设备**(含 ZTE/华为/思科跳板、Linux SSH 隧道、堡垒机协议代理),不是 UME REST 同步清单。
|
||
|
||
## 工具选择顺序
|
||
|
||
使用 **MCP**(`mcp__netx__*`)。旧 inline `netx_*` 工具已移除。
|
||
|
||
1. **定位设备**
|
||
- `mcp__netx__listManagedNe`:`keyword`、`connect_status=pass`(**首选定位**)
|
||
- `mcp__netx__getManagedNe`:仅当需要单条 `connect_detail` 时调用;**入参必须是纳管 ne_id**(来自 listManagedNe / listCliTargets `source=managed`)
|
||
- **禁止**把告警/UME 的 UUID 当 `getManagedNe` 的 `ne_id`;失败时跟返回 `hint`:改 `listManagedNe` / `getUmeNe` / `execManagedNe(ume_ne_id=...)`,禁止相同参数盲重试
|
||
- **UME 清单(无需逐台纳管)**:`mcp__netx__listCliTargets`(`source=ume`)或 `queryUmeNeInventory` 取 `ne_id`,再用 `ume_ne_id` 执行 CLI(需先在 netx **UME → CLI 连接** 配置统一凭据/跳板)
|
||
2. **登录查信息**
|
||
- `mcp__netx__execManagedNe`:`ne_id` **或** `ume_ne_id` + `commands`(默认最多 5 条,可由 `NETX_NE_EXEC_MAX_COMMANDS` 调高,硬上限 50)
|
||
- **多台必须 batch-first(一次调用,服务端并发登录,默认 concurrency=4,最多 20 台)**:
|
||
- **同命令**:`ne_ids` / `ume_ne_ids` + 共享 `commands`
|
||
- **每台命令不同(厂商/角色不同)**:用 `targets=[{ume_ne_id|ne_id, commands:[…]}, …]` 一次提交;**不要**因为命令不同就退化成逐台 `execManagedNe`
|
||
- 可按厂商拆成 1~2 次 batch(华为一批、Cisco 一批),仍远好于 N 次单台
|
||
- **禁止**对多台排查逐台循环 `execManagedNe`(stdio 串行 + 重复登录)
|
||
- **一次会话内**:`listCliTargets` 最多调用一次,缓存返回的 id;同台多条 show 合并进该台的 `commands[]`,禁止「list→exec→list→exec」循环
|
||
- 超时:提高 `read_timeout_sec`(默认 60,慢命令 90–120)或减少命令条数,禁止对同一命令盲重试
|
||
|
||
## Field link recipes (WhatsApp EN)
|
||
|
||
### Capacity / optical power between two names
|
||
|
||
When user says **capacity**, **bandwidth between A and B**, or **optical power A <> B** (prod vocabulary):
|
||
|
||
1. Resolve nicknames → real `host_name` via inventory/wiki (`SEMBAWA` → e.g. `PLG-SMW-EN1-…`).
|
||
2. Find interconnect: `findTopologyPaths` and/or LLDP (`show lldp …` / vendor equivalent) — identify **both ports**.
|
||
3. Read optics on **both** ends with the correct vendor command (below). Summarize: interface, RX/TX power, threshold, whether link is up.
|
||
4. Do **not** answer with only UME bandwidth-usage-rate alarms unless the user asked for congestion alarms.
|
||
|
||
### ZTE optical CLI (prod corrections)
|
||
|
||
Try in order; **one failure → switch command, do not retry the same spelling**:
|
||
|
||
| Prefer | Fallback / notes |
|
||
|--------|------------------|
|
||
| `show opticalinfo brief` | Field-confirmed on ZXR10 (e.g. ANGKATAN / `PLG-A45-…`) |
|
||
| `show optical brief` | Some EN platforms |
|
||
| `show opticalinfo brief \| begin <if>` | Narrow to one interface after port known |
|
||
|
||
Cisco/Huawei: use `show interface transceiver` / `display optical-module` style allowlisted commands as applicable.
|
||
|
||
### Multi-NE CLI (batch-first)
|
||
|
||
- **Same show on many NEs**: `execManagedNe(ume_ne_ids=[…], commands=[…])` once.
|
||
- **Different commands per NE** (vendor / role): one call with
|
||
`targets=[{ume_ne_id, commands:[…]}, {ume_ne_id, commands:[…]}, …]` — still concurrent on the server.
|
||
- Cap to NEs on the asked path (usually 2–5). Never one-NE `execManagedNe` loops.
|
||
|
||
## CLI 约束(服务端强制)
|
||
|
||
- 允许前缀:`show `、`display `、`ping `、`ping6 `、`traceroute `、`tracert `、`trace `、`trace6 `
|
||
- 管道:仅白名单过滤(`include`/`exclude`/`begin`/`section`/`count`/`match`/`grep`/`one-line`/`no-more`);禁止 `redirect`/`append`/`tee`/`send`
|
||
- 禁止:`;`、换行拼接、改配置类(configure/write/copy/reload/delete 等)
|
||
- 示例:
|
||
- 思科:`show version`、`show configuration | include hostname`
|
||
- 华为:`display version`、`display current-configuration | include sysname`
|
||
- ZTE:`show version`、`show interface`
|
||
- 连通:`ping 192.168.0.1`、`ping6 2001::db8::1`、`traceroute 10.0.0.1`
|
||
|
||
## 排障流程
|
||
|
||
1. `connect_status` 为 `fail`:先 `netx_get_managed_ne` 阅读 `connect_detail`,勿反复盲 exec
|
||
2. 设备经跳板:详情中确认 `hop_enabled`、`hop_vendor`、模板是否正确
|
||
- **堡垒机**(`hop_vendor=bastion`):检查 `hop_host`、`hop_port`(常见 22 或 2222)、`hop_username`、用户名模板渲染是否为 `{堡垒机用户}@{目标用户}@{目标IP}@{堡垒机地址}`(例:`bastion-user@target-user@2.2.2.2@1.1.1.1`);`hop_target_auth_mode=bastion_managed` 时目标密码在堡垒机侧,netx 可不存目标密码
|
||
3. 超时:对慢命令提高 `read_timeout_sec`(最大 120),或减少单次命令条数
|
||
|
||
## 输出约定
|
||
|
||
- 结论 + **工具返回 output 摘录**(勿编造 CLI 结果)
|
||
- 标明 `ip_address`、`name`、`ne_id`(对用户展示优先 name/IP,ne_id 作关联键)
|
||
- 英文会话:用户可见回复不得含汉字(CLI 原文可摘录但需说明为设备原文)
|