一键导入
bk-cli-cmdb
当需要通过 `bk-cli cmdb` 使用 CMDB 相关系统子命令,或在 `cmdb` 子命令与 `bk-cli api bk-cmdb ...` 之间做选择时使用。尤其适合查询业务、拓扑、主机关系、主机转移,或排查 CMDB open API 请求构造是否正确的场景。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
当需要通过 `bk-cli cmdb` 使用 CMDB 相关系统子命令,或在 `cmdb` 子命令与 `bk-cli api bk-cmdb ...` 之间做选择时使用。尤其适合查询业务、拓扑、主机关系、主机转移,或排查 CMDB open API 请求构造是否正确的场景。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
当需要为 bk-cli 扩展 system 能力时使用:无论是新增顶层 system、给已有 system 增加 action、还是为大 system 增加一层 subsystem,都应先使用此技能。技能会先检查目标 system/subsystem 是否已存在,遇到多模块 API 列表时先让用户在扁平 action 与一层 subsystem 两种命令形态中选择,再复用共享的 YAML/Go 选型、注册、测试和文档约定。
交互式测试和探索蓝鲸 CLI(bk-cli)命令。当用户希望测试 bk-cli、探索蓝鲸平台 API、验证 bk-cli 功能,或对蓝鲸各系统(cmdb、gse、job、sops、nodeman、devops 等)执行只读命令时,使用此 skill。触发短语包括"测试 bk-cli"、"test bk-cli"、"探索 bk-cli 命令"、"查看 bk-cli 接口",或任何涉及 bk-cli 子命令测试的场景。
当需要通过 `bk-cli api` 对任意 BlueKing API Gateway 发起原始 HTTP 调用时使用,尤其适合现有系统子命令还没覆盖、需要精确复现某个 URL/query/path/body/header、先做 dry-run 验证请求构造,或直接调试请求输入与响应包络时。只要用户明确在做“原始 API 请求”而不是现成业务子命令,都应优先使用这个 skill。
当需要通过 `bk-cli apigateway` 发现 BlueKing API Gateway 中所有公开网关、浏览某个网关公开的 API/资源列表、获取 OpenAPI/Schema、判断某个接口该怎么调用,或在 `apigateway` 子命令与 `bk-cli api` 之间做选择时使用。尤其是当用户还不知道或不确定该调用哪个网关、哪个公开接口、接口名可能是什么、只知道业务目标/关键词/资源名片段时,也应优先使用这个 skill,先搜索再确认,而不是直接猜测接口。
当需要通过 `bk-cli bcs` 调用 BCS API 时使用;当前主要覆盖 `bk-cli bcs cluster_manager` 下的集群、节点、节点组、节点模板、任务、模板配置和虚拟集群配额操作。
当需要通过 `bk-cli devops pipeline`、`bk-cli devops codecc`、`bk-cli devops stream` 使用蓝盾 DevOps 子系统命令时使用。适合查询和操作流水线构建、查询制品下载链接、查看 CodeCC 告警明细或统计、查询 Stream 流水线信息、触发 Stream 流水线的场景。只要用户给出 `pipelineId`、`buildId`、`taskId`、`gongfengId`、`gitProjectId`、`yamlPath` 这类 DevOps 标识,或明确提到 蓝盾、CodeCC、Stream、流水线、工蜂项目,就应该优先使用本 skill。
| name | bk-cli-cmdb |
| description | 当需要通过 `bk-cli cmdb` 使用 CMDB 相关系统子命令,或在 `cmdb` 子命令与 `bk-cli api bk-cmdb ...` 之间做选择时使用。尤其适合查询业务、拓扑、主机关系、主机转移,或排查 CMDB open API 请求构造是否正确的场景。 |
用于通过 bk-cli cmdb 调用 CMDB open API 的高频系统子命令。
CRITICAL — 开始前 MUST 先用 Read 工具读取 ../bk-cli-shared/SKILL.md。共享 skill 负责认证、context、tenant、stage、dry-run、verbose、header/body 和通用请求规则;本 skill 只补充 cmdb 命令自己的语义与输入约定。
当前 skill 覆盖这些高频 cmdb 命令:
get_biz_internal_modulesearch_businesssearch_setcreate_setsearch_modulecreate_modulelist_biz_hosts_alllist_biz_hostslist_hosts_without_bizfind_host_biz_relationslist_biz_hosts_topotransfer_host_moduletransfer_host_across_biztransfer_host_to_idle_moduletransfer_host_to_fault_moduletransfer_host_to_recycle_moduletransfer_host_to_resource_poollist_resource_pool_hostsdelete_host后续如果新增更多 cmdb 子命令,应继续追加到本 skill 的 ## Commands 章节,而不是拆成新的单命令 skill。
cmdb 子命令。bk-cli api。--dry-run 看最终 URL、headers 和 body。bk-cli api bk-cmdb ...。cmdb 命令都支持 --stage、--header、--body;list_biz_hosts_all 例外,不暴露 --body。--body '<json>' 时,请求会以该 JSON 为准,不再使用命令自带的默认请求内容。cmdb 命令通常要求可满足 app+user 的凭据;若当前 context 使用 access_token,也可满足非空认证要求。当前 cmdb 的列表型输入统一优先使用 CSV 风格 flags:
--bk_biz_ids 1,2,3--bk_host_ids 100,200--bk_module_ids 20,30--fields bk_host_id,bk_host_innerip--host_ips 规则10.0.0.127:10.0.0.2cloud_id:ip;未写前缀时默认 cloud_id=0search_businessbk-cli cmdb search_business [--bk_biz_id <id> | --bk_biz_ids <id,id,...>] [flags]
--body 时,必须二选一提供 --bk_biz_id 或 --bk_biz_ids--fields bk_biz_id,bk_biz_name,bk_biz_maintainer,bk_biz_productor--limit 500--supplier_account 0POST /api/v3/open/biz/search/{supplier_account}/get_biz_internal_modulebk-cli cmdb get_biz_internal_module --bk_biz_id <id> [--supplier_account 0]
GET /api/v3/open/topo/internal/{supplier_account}/{bk_biz_id}search_setbk-cli cmdb search_set --bk_biz_id <id> [flags]
--fields bk_set_id,bk_set_name--limit 500--bk_set_name、--bk_set_idPOST /api/v3/open/set/search/{supplier_account}/{bk_biz_id}create_setbk-cli cmdb create_set --bk_biz_id <id> --bk_set_name <name> [flags]
bk_parent_id = bk_biz_idset_template_id = 0default = 0--bk_set_env、--bk_service_status、--bk_set_desc、--bk_capacityPOST /api/v3/open/set/{bk_biz_id}search_modulebk-cli cmdb search_module --bk_biz_id <id> --bk_set_id <id> [flags]
--fields bk_module_id,bk_module_name--limit 500--bk_module_name、--bk_module_idPOST /api/v3/open/module/search/{supplier_account}/{bk_biz_id}/{bk_set_id}create_modulebk-cli cmdb create_module --bk_biz_id <id> --bk_set_id <id> --bk_module_name <name> [flags]
bk_parent_id = bk_set_id--bk_module_type、--operator、--bk_bak_operator、--service_template_id、--service_category_idPOST /api/v3/open/module/{bk_biz_id}/{bk_set_id}list_biz_hosts_allbk-cli cmdb list_biz_hosts_all --bk_biz_id <id> [--bk_set_id <id>] [--bk_module_id <id>] [--page_limit 500]
--bodydata.pagination 里补充分页元数据POST /api/v3/open/hosts/app/{bk_biz_id}/list_hostslist_biz_hostsbk-cli cmdb list_biz_hosts --bk_biz_id <id> [--host_ips 10.0.0.1,27:10.0.0.2]
bk_host_id,bk_host_innerip,bk_cloud_id,bk_host_name--host_ips 用于按 IP 过滤主机POST /api/v3/open/hosts/app/{bk_biz_id}/list_hostslist_hosts_without_bizbk-cli cmdb list_hosts_without_biz [--host_ips 10.0.0.1,27:10.0.0.2]
bk_host_id,bk_host_innerip,bk_cloud_id,bk_host_name,operator,bk_bak_operatorPOST /api/v3/open/hosts/list_hosts_without_appfind_host_biz_relationsbk-cli cmdb find_host_biz_relations --bk_host_ids 1,2,3
POST /api/v3/open/hosts/modules/readdata 不是 list,CLI 会规范化输出为空数组 []list_biz_hosts_topobk-cli cmdb list_biz_hosts_topo --bk_biz_id <id> [--host_ips 10.0.0.1]
bk_host_id,bk_host_innerip,bk_cloud_idPOST /api/v3/open/hosts/app/{bk_biz_id}/list_hosts_topolist_resource_pool_hostsbk-cli cmdb list_resource_pool_hosts [flags]
--host_ips、--fields、--start、--limitpage.sort = bk_host_idPOST /api/v3/open/hosts/list_resource_pool_hoststransfer_host_modulebk-cli cmdb transfer_host_module --bk_biz_id <id> --bk_host_ids 1,2 --bk_module_ids 20,30 [--is_increment]
POST /api/v3/open/hosts/modulestransfer_host_across_bizbk-cli cmdb transfer_host_across_biz --src_bk_biz_id <id> --dst_bk_biz_id <id> --bk_host_ids 1,2 --bk_module_id 20
POST /api/v3/open/hosts/modules/across/biztransfer_host_to_idle_modulebk-cli cmdb transfer_host_to_idle_module --bk_biz_id <id> --bk_host_ids 1,2
POST /api/v3/open/hosts/modules/idletransfer_host_to_fault_modulebk-cli cmdb transfer_host_to_fault_module --bk_biz_id <id> --bk_host_ids 1,2
POST /api/v3/open/hosts/modules/faulttransfer_host_to_recycle_modulebk-cli cmdb transfer_host_to_recycle_module --bk_biz_id <id> --bk_host_ids 1,2
POST /api/v3/open/hosts/modules/recycletransfer_host_to_resource_poolbk-cli cmdb transfer_host_to_resource_pool --bk_biz_id <id> --bk_host_ids 1,2 [--bk_module_id 50]
POST /api/v3/open/hosts/modules/resourcedelete_hostbk-cli cmdb delete_host --bk_host_ids 100,200
DELETE /api/v3/open/hosts/batchbk_host_id 的逗号分隔字符串,例如 100,200# 先看 dry-run
bk-cli cmdb search_set --bk_biz_id 2 --bk_set_name web --dry-run
# 聚合业务下所有主机
bk-cli cmdb list_biz_hosts_all --bk_biz_id 2 --page_limit 200
# 只查指定云区域和 IP 的主机
bk-cli cmdb list_biz_hosts --bk_biz_id 2 --host_ips 0:10.0.0.1,27:10.0.0.2
# 把主机批量转到指定模块
bk-cli cmdb transfer_host_module \
--bk_biz_id 2 \
--bk_host_ids 1,2 \
--bk_module_ids 20,30
bk-cli api下面这些情况更适合直接用原始 API:
cmdb 子命令示例:
bk-cli api bk-cmdb POST /api/v3/open/hosts/modules \
--body '{"bk_biz_id":2,"bk_host_id":[1,2],"bk_module_id":[20],"is_increment":false}' \
--dry-run
| 错误表现 | 常见原因 | 建议 |
|---|---|---|
one of bk_biz_id or bk_biz_ids is required when --body is not provided | search_business 未传 --body,同时也没传 --bk_biz_id / --bk_biz_ids | 补一个业务过滤条件,或改为显式传 --body |
host_ips contains an invalid host entry | --host_ips 里有非法 token | 改成 10.0.0.1,27:10.0.0.2 这种格式 |
bk_host_ids must be a comma-separated list of integers | --bk_host_ids 含空值、非数字或负数 | 改成 1,2,3 这种格式 |
supplier_account cannot be empty | --supplier_account 为空字符串 | 使用 0 或明确的 supplier account |
| 鉴权失败 / forbidden | 凭据不满足 open API 认证要求,或应用缺少权限 | 先看 shared skill 的认证规则,再核对当前 context 的凭据和权限 |