openeuler-dsh-deployer

SKILL运维和基础设施
运维和基础设施 未标注权限 许可证不明确
安装这个技能

主要用于在于openEuler操作系统安装dsh,并装上witty运维工具

一句话选型结论

按资料字段整理

openeuler-dsh-deployer是运维和基础设施类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类运维和基础设施 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_990fda25/openeuler-dsh-deployer
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

运维和基础设施
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_990fda25仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791623548
正文体量11.4 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
查服务与日志

按现象定位服务状态与日志线索。

写部署与巡检脚本

把重复的部署、巡检写成脚本。

故障排查

按步骤排查网络、依赖与配置。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在运维和基础设施场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
openeuler-dsh-deployer当前 未标注权限 未标注 未标注 未标注 有
Azure 部署 调用外部服务 GitHub 仓库 664.2 万 Codex、Claude、Cursor 有
Azure diagnostics 问题管理 调用外部服务 GitHub 仓库 657.6 万 Codex、Claude、Cursor 有
Azure aigateway 部署 调用外部服务 GitHub 仓库 655.3 万 Codex、Claude、Cursor 有
Azure AI 搜索 调用外部服务 GitHub 仓库 651.4 万 Codex、Claude、Cursor 有
Azure Cloud migrate 部署 调用外部服务 GitHub 仓库 650.7 万 Codex、Claude、Cursor 有

SKILL.md 全文

11.4 KB
模型实际读到的说明书原文,来自技能仓库

DSH Deployer — Witty-Builtin-Agents + DeepSeek Harness 部署技能

概述

本技能用于在 openEuler Linux 服务器上一键部署 Witty-Builtin-Agents + DeepSeek Harness (dsh)。部署完成后,可通过 Headless 命令行或 Web UI(默认 http://127.0.0.1:3080)使用面向 openEuler 的智能运维智能体。

部署原理:dsh 支持 --patch 方式加载 Cordis Overlay 配置,将 witty-builtin-agent 的人设提示词、默认模型(DeepSeek)与 openEuler Portal MCP 注入 dsh 运行时,从而在通用 Agent Harness 上获得面向 openEuler 的系统运维智能体能力。

部署目标环境:openEuler Linux(x86_64 或 aarch64),需 root/sudo 权限,需能访问外网(Node.js、npm、GitHub、AtomGit、SkillHub)。


部署前置检查

在执行部署前,必须先完成以下检查:

  1. 确认操作系统架构:uname -m
    - x86_64 → Node 架构用 x64
    - aarch64 → Node 架构用 arm64
  2. 确认有 sudo/root 权限:sudo -n true
  3. 确认目标目录 /opt/witty-dsh 不存在或为空,若存在则提示用户是否覆盖
  4. 确认 DeepSeek API Key 已准备:需要用户提供有效的 sk-xxx Key
  5. 确认端口 3080 未被占用:ss -tlnp | grep 3080,若有占用先停止相关进程

部署步骤(9 步)

步骤 1:安装 Node.js v24.19.0

Node.js 版本必须为 v24.19.0,不要使用系统包管理器自带的旧版本。

# 根据架构选择
NODE_ARCH=x64        # x86_64 机器
# NODE_ARCH=arm64    # aarch64 机器

NODE_VERSION=v24.19.0
curl -fsSL "https://nodejs.org/dist/${NODE_VERSION}/node-${NODE_VERSION}-linux-${NODE_ARCH}.tar.xz" -o /tmp/node.tar.xz
sudo mkdir -p /opt/nodejs
sudo tar -xJf /tmp/node.tar.xz -C /opt/nodejs --strip-components=1
echo 'export PATH=/opt/nodejs/bin:$PATH' | sudo tee /etc/profile.d/nodejs.sh
export PATH=/opt/nodejs/bin:$PATH
node -v   # 应输出 v24.19.0
npm -v

步骤 2:安装系统依赖与 NPM 包

sudo dnf install -y git curl unzip tar bubblewrap
sudo npm install -g @deepseek-ai/dsh
sudo npm install -g openeuler-portal-mcp
dsh --version   # 验证 dsh 可用

步骤 3:拉取 euler-copilot-shell 代码,初始化目录

sudo mkdir -p /opt/witty-dsh && cd /opt/witty-dsh
sudo git clone --depth 1 --branch feat/witty-cli https://atomgit.com/openeuler/euler-copilot-shell.git
sudo mkdir -p builtin-agents
sudo cp -rf euler-copilot-shell/packaging/builtin-agents/. builtin-agents/
# 确认关键文件存在
ls builtin-agents/agents/witty-builtin-agent/witty-builtin-agent.md
ls builtin-agents/config.d/witty-builtin-agent.json
ls builtin-agents/skill-versions.sh

步骤 4:创建 witty.cordis.yml Overlay 配置

文件路径:/opt/witty-dsh/witty.cordis.yml

sudo tee /opt/witty-dsh/witty.cordis.yml > /dev/null <<'EOF'
# Witty Builtin Agent overlay for DeepSeek Harness
- id: system-prompt
  config:
    persona: !!js "process.getBuiltinModule('node:fs').readFileSync(
      '/opt/witty-dsh/builtin-agents/agents/witty-builtin-agent/witty-builtin-agent.md','utf8')"
- id: agent-default-model
  config: { provider: deepseek-official, model: deepseek-v4-pro }
- id: llm-deepseek
  config:
    thinking: enabled
    reasoningEffort: max
    models: [{ id: deepseek-v4-pro, contextWindow: 128000 },
             { id: deepseek-v4-flash, contextWindow: 128000 }]
- insert:
  - id: mcp-openeuler-portal
    name: '@deepseek-ai/dsh-mcp-client'
    # npm 安装方式(步骤 2 使用 npm install -g):
    config: { serverName: openeuler_portal, transport: stdio,
              command: npx, args: ['-y', 'openeuler-portal-mcp'],
              failOnStartupError: false, toolCallTimeoutMs: 60000 }
    # RPM 包安装方式:
    # config: { serverName: openeuler_portal, transport: stdio,
    #           command: /usr/local/bin/openeuler-portal-mcp,
    #           failOnStartupError: false, toolCallTimeoutMs: 60000 }
EOF

> ⚠️ persona 层序提示:此补丁写的是部署层 persona,会被 standard 预设自带的 persona 行遮蔽(现象:模型/MCP 生效但人设未变)。排查与修复见 references/common-issues.md。

步骤 5:设置 DeepSeek API Key 凭证

重要:凭证文件权限必须严格为 600,否则 dsh 拒绝加载。将 sk-你的Key 替换为用户提供的真实密钥。

mkdir -p ~/.dsh
printf 'DEEPSEEK_API_KEY: %s\n' 'sk-你的Key' > ~/.dsh/.credentials.yaml
chmod 700 ~/.dsh
chmod 600 ~/.dsh/.credentials.yaml
# 验证权限
ls -la ~/.dsh/.credentials.yaml   # 应为 -rw-------

步骤 6(可选):安装 Skills

第一步:交互式询问。向用户展示以下 6 个可选 Skill 并询问安装哪些,默认推荐 all 全装:

编号 Skill 版本 用途
1 manpage-skill 1.0.0 Linux 命令手册查询与分析
2 log-anomaly-detector 1.0.0 日志异常模式检测与建议
3 html-report-generator 1.0.0 HTML 可视化报告生成
4 brainstorm-beagle 1.0.5 模糊需求 → 项目规格梳理
5 plantuml-skill 1.4.1 PlantUML 图表生成
6 experience-skill 1.0.0 本地经验库网关(skill_hub/wiki_hub)

> 版本号以 builtin-agents/skill-versions.sh 为准(单一事实来源)。

询问示例:

请问需要安装哪些 Skills?
- 输入编号安装部分(如 1,3,6)
- 输入 all 安装全部 6 个(推荐)
- 输入 none 跳过本步骤(后续可通过 dsh 内命令补装)

第二步:按用户选择安装。选中的 Skill 统一从 SkillHub 下载:

mkdir -p ~/.dsh/skills
mkdir -p /opt/witty-dsh/skill-dl && cd /opt/witty-dsh/skill-dl

# SELECTED 替换为用户选中的 slug(空格分隔)
SELECTED="manpage-skill log-anomaly-detector html-report-generator brainstorm-beagle plantuml-skill experience-skill"
for slug in $SELECTED; do
  echo "Downloading $slug ..."
  curl -sSL -H "Referer: https://skillhub.cn/" \
    "https://api.skillhub.cn/api/v1/download?slug=${slug}" -o "${slug}.zip"
  mkdir -p ~/.dsh/skills/${slug}
  unzip -oq "${slug}.zip" -d ~/.dsh/skills/${slug}
done

> 💡 若选中 experience-skill:SkillHub 包不含预编译中文分词扩展与虚拟环境,解压后需在其 scripts/ 目录执行 uv sync(需 Python 3.11+)生成运行环境,随后验证才会通过。

第三步:验证安装结果。对用户选中的每个 Skill 逐一检查,有任一 ❌ 即向用户报告该 Skill 安装失败:

# 检查 SKILL.md 存在且 frontmatter 含 name/description
# (dsh 会静默忽略缺失这些元数据的技能——见 references/common-issues.md §2)
for slug in <用户选中的全部 slug 空格分隔>; do
  f="$HOME/.dsh/skills/${slug}/SKILL.md"
  if [ -f "$f" ] && head -10 "$f" | grep -q "^name:" && head -10 "$f" | grep -q "^description:"; then
    echo "✅ ${slug} 安装成功"
  else
    echo "❌ ${slug} 缺失 SKILL.md 或 frontmatter 不完整"
  fi
done
ls ~/.dsh/skills/
  • 若安装了 experience-skill,额外验证 CLI 可用(dsh 沙箱下用 venv 直跑,勿用 uv run):
cd ~/.dsh/skills/experience-skill/scripts && .venv/bin/experience-skill list-experiences --page 1 --page-size 1

预期:选中的每个 Skill 输出 ✅;experience-skill 的 CLI 正常返回(空库也算正常)。

步骤 7:Headless 命令行交互测试

cd /opt/witty-dsh
dsh --profile headless --patch /opt/witty-dsh/witty.cordis.yml "你好,请介绍一下你自己"

预期:返回以 Witty Assistant 身份的中文自我介绍,说明是 openEuler 运维助手。若报错,根据错误信息排查(常见原因:API Key 错误、网络不通、Node 版本不对)。

步骤 8:后台启动 Web 服务

cd /opt/witty-dsh
nohup dsh web --patch /opt/witty-dsh/witty.cordis.yml > /opt/witty-dsh/web.log 2>&1 &
echo $! > /opt/witty-dsh/web.pid

# 等待 5-10 秒后检查
sleep 8
ss -tlnp | grep 3080
tail -20 /opt/witty-dsh/web.log

预期:端口 3080 处于 LISTEN 状态,日志无致命错误。

停止 Web 服务:

kill $(cat /opt/witty-dsh/web.pid) 2>/dev/null
pkill -f "dsh web"

步骤 9:SSH 本地端口转发访问 WebUI

在用户本地机器(非服务器)执行:

ssh -L 3080:127.0.0.1:3080 <用户名>@<服务器地址>

然后在本地浏览器打开:http://127.0.0.1:3080


部署后验证清单

部署完成后逐项确认:

检查项 命令 预期
Node 版本 node -v v24.19.0
dsh 可用 dsh --version 输出版本号
凭证权限 ls -la ~/.dsh/.credentials.yaml -rw-------
Overlay 文件 ls /opt/witty-dsh/witty.cordis.yml 文件存在
Agent 提示词 ls /opt/witty-dsh/builtin-agents/agents/witty-builtin-agent/witty-builtin-agent.md 文件存在
Portal MCP 包 npm list -g openeuler-portal-mcp 全局已安装
Web 端口 ss -tlnp \| grep 3080 LISTEN 状态
Headless 测试 dsh --profile headless --patch /opt/witty-dsh/witty.cordis.yml "你好" 正常返回中文回答

常见问题排查与 FAQ

部署期与运行期的所有高频问题统一收编在 references/common-issues.md,SKILL.md 只保留此索引:

  • 常见问题排查(部署期):EADDRINUSE 3080、凭证权限、MCP 连接失败、Node 版本、npm 安装慢、Web 界面无法访问
  • 常见问题(FAQ,运行期):persona 不生效、技能不显示、沙箱写入受限、配置生效方式、验证速查

注意事项

  1. 日志位置:Web 服务日志写入 /opt/witty-dsh/web.log,排查异常时首先查看该文件
  2. 密钥安全:~/.dsh/.credentials.yaml 包含 API Key,不要提交到版本控制或泄露
  3. Overlay 配置修改:修改 witty.cordis.yml 后需重启 dsh 服务生效
  4. 多用户部署:每个用户的 ~/.dsh/ 目录独立,API Key 与 Skills 按用户隔离;若需全局共享 Skills,可放到 /usr/share/witty/ 等公共目录并在配置中引用
  5. Skills 可选:步骤 6 的 6 个 Skill 为增强能力,未安装时基础问答仍可工作,但日志分析、HTML 报告、绘图、本地经验检索等能力不可用
  6. Windows 本地开发:本技能面向 openEuler Linux 目标服务器,若用户在 Windows 本地直接部署 dsh,注意路径分隔符与 .dsh 目录位置差异(Windows 下为 %USERPROFILE%\.dsh),且 bubblewrap 在 Windows 不可用需跳过

一键部署脚本参考(可选提供)

若用户需要一键部署,可将以上步骤封装为 bash 脚本。脚本需接收参数:--api-key=<sk-xxx>、--arch=<x64|arm64>、--with-skills(是否安装 Skills)、--start-web(是否启动 Web)。

脚本执行流程:前置检查 → 步骤 1-6 → (可选)步骤 7 测试 → (可选)步骤 8 启动 → 输出访问指引。

常见问题

5 问
答案由本站依据条目字段整理
openeuler-dsh-deployer怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_990fda25/openeuler-dsh-deployer。安装方式为未标注。装完刷新技能列表或重开客户端。

openeuler-dsh-deployer支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

openeuler-dsh-deployer权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

openeuler-dsh-deployer收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

openeuler-dsh-deployer用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。