Service Deployer

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

在物理机本地自动部署目标分支与基线分支两个 async 类型 navi-guide 服务。基于 install.sh 改造,自动推导基线分支、自动探测空闲端口。qa-integration-pipeline Phase 0 调用。

一句话选型结论

按资料字段整理

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

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

安装

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

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

  2. 2
    拿到技能文件

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

  3. 3
    刷新技能列表

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

  4. 4
    验证是否生效

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

技能档案

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

典型使用场景

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

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

写部署与巡检脚本

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

故障排查

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

选择建议

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

值得选的地方

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

先想清楚的地方

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

更适合

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

不太适合

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

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
Service 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 全文

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

Service Deployer

在物理机本地部署目标分支 + 基线分支两个 async 类型 navi-guide 服务。

参数

参数 必填 默认值 说明
feature ✅ - 功能名
home ❌ /home/xiaoju/map-spec-deploy 基线服务部署根目录(目标服务使用当前工作目录)
data_mode ❌ single 数据加载模式:single(单版本,默认)/dual(双版本,需本地灵犀脚本)

> target_branch 自动读取当前分支,baseline_branch 自动推导,type 固定为 async。均无需传入。
>
> 数据模式说明:
> - single:enable_road_data_manager = 0,使用远程数据管理 10.74.92.51:9012
> - dual:enable_road_data_manager = 1,road_data_manager = "127.0.0.1:8098/api/machine/status",加载双版本数据。启动顺序:先启动灵犀 mock 脚本 → 再启动服务。
>
> 获取数据版本号:
> bash > ls /home/xiaoju/data_ng_master_90001/ | grep -E '^[0-9]+$' | sort -rn | head -2 >
>
> 启动灵犀 mock 脚本(以版本 2026062912 和 2026062999 为例,2026062999 为稳定版):
> bash > python testing/service-deployer/mock_data_manager.py \ > --port 8098 \ > --data_list "2026062912,2026062999" \ > --stable_version "2026062999" >
> > 脚本位置:testing/service-deployer/mock_data_manager.py
> > - 服务默认优先使用稳定版(stable_version)
> > - 切换数据版本时:杀掉 mock 脚本 → 修改 --stable_version → 重新启动 mock 脚本,服务无需重启

返回 JSON

{
  "status": "success",
  "target": { "branch": "...", "host": "ip:port", "brpc_port": ... },
  "baseline": { "branch": "...", "host": "ip:port", "brpc_port": ... }
}

执行流程

Step 0: 知识库查询(可选)

在部署服务前,可查询 LLM-Wiki 知识库获取服务部署配置和环境设置经验:

POST http://10.190.56.84:8080/search
Content-Type: application/json

{
  "collection": "navi-guide-qa-knowledge",
  "query": "navi-guide 服务部署 async 端口配置 环境设置",
  "limit": 5
}

查询时机:
- 部署前:查询历史部署配置参数、端口使用规范、data_mode 设置经验
- 部署失败时:查询常见部署错误和解决方案(如端口占用、分支推导失败等)
- dual 模式部署时:查询灵犀 mock 脚本使用经验和双版本数据配置

检索结果应用:
- 参考历史部署经验,优化端口探测和参数配置
- 借鉴历史故障处理方案,加速部署问题恢复

Step 1: 获取当前分支

target_branch=$(git rev-parse --abbrev-ref HEAD)

Step 2: 推导基线分支

CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
REMOTE_BRANCH_COMMIT=$(git rev-parse origin/${CURRENT_BRANCH})

# 检查远程分支最新提交是否是 merge commit(feature 分支可能被 rebase 到了目标分支最新提交)
PARENTS=$(git show --no-patch --format="%P" ${REMOTE_BRANCH_COMMIT} | wc -w)

if [ "${PARENTS}" -eq 2 ]; then
  # merge commit 的第二个父提交是 feature 分支原始的基线提交
  # 避免使用被 rebase 后的最新共同祖先(会包含目标分支的新提交)
  BASELINE_COMMIT=$(git show --no-patch --format="%P" ${REMOTE_BRANCH_COMMIT} | awk '{print $2}')
  baseline_branch=$(git branch -r --contains ${BASELINE_COMMIT} | grep -E 'p-docker-dev|master' | head -1 | sed 's|origin/||')
else
  # 非 merge commit,使用原有逻辑:找最新共同祖先
  BASE_COMMIT=$(git merge-base origin/p-docker-dev HEAD)
  baseline_branch=$(git branch -r --contains ${BASE_COMMIT} | grep -E 'p-docker-dev|master' | head -1 | sed 's|origin/||')
fi

Step 3: 本地探测端口

find_free_port() {
  local start=$1 port=$start
  while ss -tln | awk '{print $4}' | grep -q ":$port "; do
    ((port++)); [ "$port" -gt "$((start+500))" ] && { echo "NO_FREE_PORT"; return 1; }
  done
  echo "$port"
}
PORT_TARGET=$(find_free_port 10100)
BRPC_TARGET=$((PORT_TARGET+100))
PORT_BASE=$(find_free_port $((PORT_TARGET+2)))
BRPC_BASE=$((PORT_BASE+100))

Step 4: 执行部署脚本

bash deploy_dual.sh "${home}" "${target_branch}" "${baseline_branch}" \
  "${PORT_TARGET}" "${BRPC_TARGET}" "${PORT_BASE}" "${BRPC_BASE}" "${data_mode}"

> 脚本位置:testing/service-deployer/deploy_dual.sh
>
> data_mode 默认 single,由调用方根据需求是否涉及数据版本切换传入。

Step 5: 更新配置

deploy_dual.sh 执行完成后,解析其标准输出中的实际端口:

# 从输出中提取实际端口(deploy_dual.sh 内部可能因端口抢占自动重选)
ACTUAL_PORT_TARGET=$(echo "$deploy_output" | grep '^TARGET: port=' | sed 's/.*port=//;s/ brpc=.*//')
ACTUAL_PORT_BASE=$(echo "$deploy_output" | grep '^BASELINE: port=' | sed 's/.*port=//;s/ brpc=.*//')

获取本机 IP 并写入配置:

LOCAL_IP=$(hostname -I | awk '{print $1}')
{ "host": "${LOCAL_IP}:${ACTUAL_PORT_TARGET}", "host_baseline": "${LOCAL_IP}:${ACTUAL_PORT_BASE}", "git_branch": "<target_branch>" }

> 注意:deploy_dual.sh 在入口已内置 find_free_port 重探测逻辑,若传入端口被抢占会自动递增。上述解析确保 config 中写入的是实际使用端口而非传入端口。

Step 6: 生成报告

输出部署报告:<CASE_DIR>/<feature>/deploy_report.md

脚本说明

deploy_dual.sh 基于 install.sh 改造,固定 async 类型,本地执行。
参数:home target_branch baseline_branch port_target brpc_target port_baseline brpc_baseline data_mode

  • 目标服务:使用当前工作目录代码(map-spec 测试阶段代码尚未 push),在当前目录执行 build.sh + ngbuild.sh release,不执行任何 git clone/git reset
  • 基线服务:git clone 基线分支到 ${home}/navi-guide,独立目录构建
  • 两个服务进程名均为 navi-guide-server,通过目录路径区分
  • 并行构建与启动,失败自动清理残留服务
  • 返回 TARGET_DEPLOY_FAILED 或 BASELINE_DEPLOY_FAILED 标识失败

常见问题

5 问
答案由本站依据条目字段整理
Service Deployer怎么安装?

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

Service Deployer支持哪些客户端?

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

Service Deployer权限高吗,安全吗?

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

Service Deployer收费吗?

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

Service Deployer用什么许可证?

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

热门专题

按场景挑技能
全部专题 →

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