cicd Command
CI/CD 常用排障命令
CI/CD 排障常用命令合集,Jenkins 用 jenkins-cli 与 queue/computer API 查队列和 executor,GitLab 用 gitlab-runner verify/list 检查 Runner,GitHub Actions 用 gh run list、gh run view --log-failed、gh cache 定位失败步骤和缓存。
Jenkins 用 jenkins-cli 和队列 API,GitLab 用 gitlab-runner verify,GitHub Actions 用 gh run 和 gh cache,Docker 构建用 buildx --progress=plain 看完整日志。
Scenario
什么时候用这组命令
这组命令适合在处理“CI/CD 常用排障命令”时作为第一轮检查模板。使用时先替换占位符,再在目标机器或目标 namespace 中执行,避免在错误环境里得到误导结论。
Input
你需要先准备什么
- 先确认是流水线配置问题,还是 Runner / 执行环境问题,避免在 YAML 和基础设施之间来回横跳。
- 保留失败 job 的完整日志、触发上下文、分支和 commit,而不是只看最后几行报错。
- 区分本地能复现但 CI 不行的问题,重点对比环境、密钥、缓存和网络差异。
Risk Notes
执行风险
- 不要在日志里打印 secrets 或 token,CI 日志常被长期留存,泄露后难以追溯。
- 不要用 latest tag 做缓存 key,会导致产物不可复现甚至复用错误缓存。
- 不要在流水线中执行不安全的 shell 命令或从不可信源下载脚本。
Commands
命令详解
命令 1: 执行 java
用于补充“CI/CD 常用排障命令”的排查证据链。java 的输出需要结合上下文其他命令交叉验证,不要单独依赖某一条结果下结论。
- 确认命令运行位置正确。
- 保留关键输出,方便和修复后对比。
java -jar jenkins-cli.jar -s http://localhost:8080/ -auth user:token list-jobs命令 2: 发起 HTTP/网络探测
用于从指定位置模拟真实请求。加 -v 可以看到 DNS、TCP、TLS、HTTP 头和代理连接过程,是定位链路阶段的关键证据。
- 确认命令运行位置正确。
- 保留关键输出,方便和修复后对比。
curl -s http://localhost:8080/queue/api/json命令 3: 发起 HTTP/网络探测
用于从指定位置模拟真实请求。加 -v 可以看到 DNS、TCP、TLS、HTTP 头和代理连接过程,是定位链路阶段的关键证据。
- 确认命令运行位置正确。
- 保留关键输出,方便和修复后对比。
curl -s http://localhost:8080/computer/api/json命令 4: 执行 sudo
用于确认 Git/SSH 的最终配置和认证链路。注意输出中可能包含仓库地址、用户名或代理信息,分享前应脱敏。
- 确认命令运行位置正确。
- 保留关键输出,方便和修复后对比。
- 如果输出为空或权限不足,切换到有权限用户后再判断。
sudo gitlab-runner verify命令 5: 执行 sudo
用于确认 Git/SSH 的最终配置和认证链路。注意输出中可能包含仓库地址、用户名或代理信息,分享前应脱敏。
- 确认命令运行位置正确。
- 保留关键输出,方便和修复后对比。
- 如果输出为空或权限不足,切换到有权限用户后再判断。
sudo gitlab-runner list命令 6: 执行 gh
用于补充“CI/CD 常用排障命令”的排查证据链。gh 的输出需要结合上下文其他命令交叉验证,不要单独依赖某一条结果下结论。
- 确认命令运行位置正确。
- 保留关键输出,方便和修复后对比。
gh run list -R owner/repo --limit 20命令 7: 执行 gh
用于补充“CI/CD 常用排障命令”的排查证据链。gh 的输出需要结合上下文其他命令交叉验证,不要单独依赖某一条结果下结论。
- 先替换尖括号占位符,不要原样执行。
- 确认命令运行位置正确。
- 保留关键输出,方便和修复后对比。
gh run view <run-id> --log-failed命令 8: 执行 gh
用于补充“CI/CD 常用排障命令”的排查证据链。gh 的输出需要结合上下文其他命令交叉验证,不要单独依赖某一条结果下结论。
- 确认命令运行位置正确。
- 保留关键输出,方便和修复后对比。
gh cache list -R owner/repo命令 9: 检查 Docker 状态
用于补充“CI/CD 常用排障命令”的排查证据链。docker 的输出需要结合上下文其他命令交叉验证,不要单独依赖某一条结果下结论。
- 确认命令运行位置正确。
- 保留关键输出,方便和修复后对比。
docker buildx build --progress=plain .命令 10: 查看 systemd 日志
用于读取 systemd 或内核在故障时间附近记录的真实错误,比 status 摘要更完整。重点看时间、退出码、权限、路径和依赖失败。
- 确认命令运行位置正确。
- 保留关键输出,方便和修复后对比。
- 如果输出为空或权限不足,切换到有权限用户后再判断。
sudo journalctl -u gitlab-runner -n 200 --no-pagerWorkflow
建议执行顺序
按顺序执行,不要跳过确认类命令
先用只读命令确认状态,再执行会改变状态的命令。Jenkins 用 jenkins-cli 和队列 API,GitLab 用 gitlab-runner verify,GitHub Actions 用 gh run 和 gh cache,Docker 构建用 buildx --progress=plain 看完整日志。
- Jenkins 排障先用 jenkins-cli list-jobs 和 queue/api/json 看队列积压与 job 状态。
- 用 computer/api/json 检查 executor 和节点是否 offline,构建卡住时配合 jstack 抓线程。
- GitLab CI 用 gitlab-runner verify 测试连接,gitlab-runner list 查看已注册 Runner。
- GitHub Actions 用 gh run list 和 gh run view --log-failed 快速定位失败步骤和日志。
- Docker 构建用 buildx --progress=plain 输出完整日志,配合 gh cache 管理缓存。
java -jar jenkins-cli.jar -s http://localhost:8080/ -auth user:token list-jobs
curl -s http://localhost:8080/queue/api/json
curl -s http://localhost:8080/computer/api/json把命令输出变成结论
命令本身不是结论。每次执行后要回答:目标是否存在、状态是否异常、异常是否能解释用户看到的现象。
- 记录关键字段,而不是整屏复制
- 把正常路径和异常路径输出对比
- 输出为空也要解释:是确实没有,还是权限/过滤条件不对
curl -s http://localhost:8080/queue/api/json
curl -s http://localhost:8080/computer/api/json
sudo gitlab-runner verify执行前替换占位符并控制影响范围
包含 <service>、<pod>、<namespace>、<pid>、<container> 的命令必须先替换。涉及 reload、restart、KILL、vacuum、prune 的命令要确认影响范围。
- 优先在测试环境或只读模式验证
- 生产执行前保留回滚路径
- 把最终可用命令写入工单或 runbook
docker buildx build --progress=plain .
sudo journalctl -u gitlab-runner -n 200 --no-pagerVerification
怎么判断命令有效
- 命令已在正确机器、正确用户、正确 namespace 或正确仓库下执行。
- 输出能支撑明确判断:正常、异常、权限不足、目标不存在或需要下一跳排查。
- 对有副作用的命令,已确认执行窗口、影响范围和回滚方式。
Prevention
沉淀到日常流程
- 把 secrets 和环境变量在流水线里显式声明,避免依赖运行时隐式注入导致不一致。
- 为关键 job 加超时上限,防止卡死占用 Runner 影响其他流水线执行。
- 缓存 key 统一用 lockfile hash,不要用 latest tag 或时间变量,确保缓存可复现。
- 在流水线中增加构建产物验证步骤,如类型检查、lint 和测试,尽早发现质量问题。
常见问题
jenkins-cli 怎么认证?
在 Jenkins 用户配置里生成 API Token,用 -auth 用户名:token 方式传入,或配置 SSH 公钥用 -ssh 方式连接。
gh 命令没有权限访问仓库怎么办?
先 gh auth login 登录并授权,仓库为私有时确保 token 有 repo 权限,组织内还需 organization 权限。
Long-tail SEO
你可能正在搜索这些报错
下面这些错误原文、场景词和中英文搜索词,都是排查同类问题时常见的入口。
- CI/CD 排障命令
- jenkins-cli 使用
- gitlab-runner verify
- gh run view 失败日志
- gh cache list 缓存
- docker buildx 排障
- jenkins 队列查看命令
- gitlab runner 状态查看
Need More Help
这组命令还不够贴合你的场景?
把你的系统环境、目标操作和报错贴过来,我会优先补充更具体的命令模板。