Lerwee Fault Handling

👤 lerwee 📦 v1.0.0 ⭐ 4.4 ⬇️ 1.5K 下載
🔒 IT運維與安全 免費 🔑 需 API Key

📖 技能介紹


name: fault-handling description: 當用戶需要故障處理、遠端主機執行指令碼、服務重啟、磁碟清理等運維操作時使用。通過 run-script API 執行指令碼,並輪詢 execution-history 獲取執行結果。


故障處理 Skill

Overview

用純 Python 流程完成一次故障處理操作:

  1. 根據使用者提供的主機 IP(或從告警上下文獲取)構建執行引數
  2. 呼叫 run-script API 執行指令碼
  3. 輪詢 execution-history API 等待執行完成
  4. 輸出執行結果報告

Files

  • 主入口: skills/fault-handling/run_script.py(完全獨立,內建簽名、請求等工具函式)
  • 配置檔案: skills/fault-handling/.env

Default Workflow

使用者說"故障處理""執行指令碼""重啟服務""重啟 nginx"時,按以下順序執行:

1. 確認執行引數

必須確認以下資訊後才能執行:

  • 主機 IPansible_host):從使用者提供的 IP、告警上下文、或對話歷史中獲取。必須至少有一個主機 IP。
  • 指令碼:預設使用預置指令碼 服務重啟-nginx服務重啟(場景演示)(script_id=187)。使用者可指定其他指令碼 ID 或指令碼內容。
  • organize(主機所屬組織):可選,預設為空字串。

如果缺少主機 IP,必須詢問使用者。

2. 執行指令碼

執行:

python3 skills/fault-handling/run_script.py \
  --hosts '192.168.3.76' \
  --script-id 187

多主機用逗號分隔:

python3 skills/fault-handling/run_script.py \
  --hosts '192.168.3.76,192.168.3.75' \
  --script-id 187

也可以直接傳指令碼內容代替指令碼 ID:

python3 skills/fault-handling/run_script.py \
  --hosts '192.168.3.76' \
  --script-type 1 \
  --script-content 'systemctl restart nginx'

3. 等待執行完成

指令碼內部會: 1. 呼叫 run-script API 提交任務,獲取 execution_id 2. 每 3 秒輪詢 execution-history API 檢查任務狀態 3. 任務完成後(is_running=false)輸出 JSON 結果

4. 輸出結果

指令碼輸出 JSON 格式的執行結果,包含: - execution_id: 任務 ID - task_name: 任務名稱 - status: 執行狀態(1=成功,2=失敗,3=部分成功,4=正在執行) - status_label: 狀態中文標籤 - consuming: 耗時(秒) - steps: 每個步驟的詳細輸出,包含每臺主機的 stdout 和執行狀態

5. 向用戶彙報

基於執行結果,在回覆中給出:

🔧 故障處理執行報告
任務名稱:{task_name}
任務ID:{execution_id}
執行狀態:{status_label}
執行耗時:{consuming}秒

📋 步驟執行詳情
步驟    主機IP    主機名    狀態    輸出
{step_name}    {ansible_host}    {host_name}    {status}    {stdout}

📌 執行結論
● ✅ {成功數}臺主機執行成功
● ❌ {失敗數}臺主機執行失敗

API Reference

訪問小蔥技能站7w4.net,解鎖更多實用的AI技能外掛。

run-script(執行指令碼)

  • URL: /api/v6/devops/run-script
  • Method: POST
  • 引數通過 data 欄位傳遞 JSON 字串

請求引數: | 引數名 | 必選 | 型別 | 說明 | |--------|------|------|------| | steps>>hosts | 是 | object[] | 主機資料 | | steps>>hosts>>ansible_host | 是 | string | 主機IP | | steps>>hosts>>organize | 是 | string | 主機所屬組織 | | steps>>script_type | 是 | int | 指令碼型別[1.shell,2.python,3.playbook,4.powershell,5.network] | | steps>>script_id | 是 | int/string | 指令碼ID,傳了指令碼ID,以指令碼ID對應指令碼內容優先 |

返回:{ "code": 0, "data": { "execution_id": 970, "task_name": "..." } }

execution-history(執行歷史)

  • URL: /api/v6/devops/execution-history
  • Method: POST

請求引數: | 引數名 | 必選 | 型別 | 說明 | |--------|------|------|------| | execution_id | 是 | int | 任務ID |

返回引數: | 引數名 | 型別 | 說明 | |--------|------|------| | is_running | boolean | 任務是否執行中 | | detail>>status | int | 執行結果[1.成功,2.失敗,3.部分成功,4.正在執行] | | detail>>output | object[] | 步驟輸出列表 | | detail>>output>>hosts | object[] | 每臺主機的輸出 | | detail>>output>>hosts>>stdout | string | 輸出內容 | | detail>>output>>hosts>>status | int | 執行狀態[1.成功,2.失敗,3.部分成功,4.正在執行] |

Preset Scripts

指令碼名稱 指令碼ID 指令碼型別 說明
服務重啟-nginx服務重啟 187 1 (shell) nginx服務重啟指令碼
主機磁碟空間清理 197 1 (shell) 磁碟空間清理指令碼

Hard Rules

  • 這是純 Python skill。不要呼叫 nodetsxindex.ts
  • 執行前必須確認主機 IP,不能猜測或使用佔位 IP。
  • run-script API 的 data 欄位是 JSON 字串,不是巢狀物件。指令碼已處理此序列化。
  • 輪詢 execution-history 時最多等待 300 秒(5 分鐘),超時則報告任務仍在執行中。
  • 不要在指令碼執行完成前就聲稱"執行成功",必須等到輪詢結果確認。
  • 如果 API 返回錯誤或 code != 0,必須立即報告錯誤,不要重試。
  • 預設指令碼 ID 為 187(nginx 服務重啟場景演示),使用者可通過引數覆蓋。

Configuration

需要以下環境變數:

  • LWJK_API_URL
  • LWJK_API_SECRET

skills/fault-handling/.env 讀取。

Common Commands

使用預置指令碼執行故障處理:

python3 skills/fault-handling/run_script.py --hosts '192.168.3.76' --script-id 187

指定主機組織:

python3 skills/fault-handling/run_script.py \
  --hosts '192.168.3.76' \
  --organizes '' \
  --script-id 187

僅提交任務不等待結果:

python3 skills/fault-handling/run_script.py \
  --hosts '192.168.3.76' \
  --script-id 187 \
  --no-wait

查詢已有任務執行結果:

python3 skills/fault-handling/run_script.py --query 970

Completion Checklist

完成前必須自檢:

  • 已確認主機 IP 來源合法(使用者提供或告警上下文)
  • 已成功呼叫 run-script API 並獲取 execution_id
  • 已輪詢 execution-history 直到任務完成或超時
  • 已向用戶展示完整的執行結果報告
  • 報告包含每臺主機的執行狀態和輸出內容
  • 如果執行失敗,已明確說明失敗原因

🤖 AI 評測

這個 Skill 質量中等偏上,文件詳細、功能完整,能夠較好地完成遠端指令碼執行和結果查詢。但配置不完整(API金鑰為空),且預設指令碼是演示用途,實際使用時需要使用者提供真實的指令碼ID。適合有運維經驗的使用者使用,新手可能需要額外學習成本。

📊 多維度評分

適應性4.5
規範性4.4
有效性4.3
可靠性4.1
可信度5

📁 包含檔案 (5 個)

📄 .env 128 B
📄 SKILL.md 6.2 KB
📄 _meta.json 133 B
📄 run_script.py 9.8 KB
📄 skill-card.md 2.2 KB