SuperAPI AI 工具集

jenkins-agent-l3-deploy

部署与运维

查看项目

更新于 10-15 22:32

技能介绍

用途:在目标主机上通过 Jenkins 入站代理本地运行 deploy.py 与 docker compose,部署 docker-compose 栈;控制器不发起 SSH。触发词包括「deploy via jenkins agent」「no-ssh deploy」「docker secrets L3」「隐藏 secret 不被 docker inspect 看到」。

主要能力:配置 Jenkins 节点、凭据与作业;在目标上执行 shell、docker 与 sudo;从 SCM 读取 git 仓库。密钥处理为 L3:由 provisioner 写入 tmpfs 目录(文件 0444、目录 0700),compose 以 secrets 挂载到 /run/secrets,镜像内置 secrets-entrypoint.sh 在启动时读取并导出为环境变量,因此密钥不在 docker inspect 与 .env 中,也不落盘。postgres 使用官方 POSTGRES_PASSWORD_FILE。

使用方式:Setup 一次性创建 inbound agent(节点、Java 21、agent.jar、用户需在 docker 组且具备 sudo NOPASSWD,Secret file 凭据),流水线模板为 Sync → Deploy → Verify,代码来自 SCM。示例命令包括安装 openjdk-21-jre-headless、下载 agent.jar 并启动代理,以及验证阶段检查 CLEAN/MOUNT、smoke 200,并 shred 凭据。

适用场景:具备可运行 Jenkins 代理的 Linux 目标主机、需要避免控制器 SSH、希望密钥不落盘且不出现在 docker inspect 的 docker-compose 部署;支持选择性部署某些服务(WEB/ETL/DB/NGINX/ALL)。

限制:无法在目标运行代理时超出本技能范围(应改用 SSH 变体);Verify 出现 LEAK 或 NOMOUNT 即 exit 1,视为失败;Java 17 会导致 UnsupportedClassVersionError;secret 文件 0600 会造成容器 Permission denied;/run 为 tmpfs,重启后密钥消失需重新部署;私有仓库需 deploy key 并在控制器与代理上配置 known_hosts。未提供的价格、平台等信息暂未说明。