SuperAPI AI 工具集

package-airflow-blue

部署与运维

查看项目

更新于 10-16 02:38

技能介绍

用途:在当前目录初始化或运维一个 Airflow 项目。它通过 uv 启动,供应一台 VPS,运行 Docker 中的 Airflow(LocalExecutor)、持续归档到对象存储的主机 Postgres,以及终止 TLS 并持有唯一登录的 Caddy。DAG 由 GitHub Actions 工作流推送到服务器。create 与 delete 还需要 OpenTofu、Ansible 和 gh CLI。凭据通过 COLORS_PAR_* 环境变量提供,OCI 使用 ~/.oci/config 中的 profile,S3 使用 OpenTofu 的环境 AWS 凭据链。

主要能力与命令: ./blue build:仅渲染 .colors/<profile>/,不接触任何外部资源 ./blue create --dry-run:打印执行图,不做任何改动 ./blue create:供应、配置并发布部署密钥 ./blue delete:吊销密钥后销毁;DAG 仓库保留 -f/--file 可覆盖从工作目录向上查找的 colors.yml。没有 stop、start、describe,Airflow 持续运行且不暴露电源操作。create 顺序为 start -> compute -> smtp -> dns -> smtp-post -> ansible-local -> ansible-remote -> github;delete 时图反向,github 最先执行。

关键限制与安全规则: 永不要求用户把密钥粘贴到聊天中;密钥不得写入 colors.yml、启动器、shell 历史或示例,应使用被 gitignore 的 .envrc.private。禁止设置 COLORS_PAR_PROFILE,否则包拒绝运行,且该 profile 是区分同一 bucket 内不同项目状态的唯一依据。COLORS_PAR_AIRFLOW_FERNET_KEY 属于备份一部分,加密所有已存储的 Airflow 连接;既有部署不得重新生成。不要未经明确批准覆盖已有 blue 启动器或 colors.yml;已有有效项目应运维而非重新生成。默认使用 build 与 create --dry-run,真实 create/delete 需用户确认。dry-run 不校验凭据。delete 前须说明元数据库随 droplet 一起删除,可通过文档化的手动 WAL-G 流程恢复;compute-prevent-destroy 默认为 true,有意删除需设 COLORS_PAR_COMPUTE_PREVENT_DESTROY=false。不要编辑 .colors/ 下任何内容。更改期望状态或执行真实 create/delete 前请先阅读 references/configuration.md。

首次 create 后:Web UI 位于 https://<airflow-host>,使用浏览器密码提示,用户名 airflow-admin-username,密码为 COLORS_PAR_AIRFLOW_ADMIN_PASSWORD,该提示由 Caddy 提供。证书签发需约一分钟,期间 Cloudflare 可能返回 526 属预期。DAG 通过推送到仓库部署,种子工作流在推送到 dags-branch 时同步 dags/;dag-processor 定时重扫,无需重启,部署密钥无需 sudo。基础备份在 create 时生成,之后按 walg-full-backup-oncalendar 运行,超过 walg-max-backup-age-hours 会告警。恢复元数据库没有 restore 命令,须手动执行文档给出的 wal-g-wrapper backup-fetch 流程,并确认 Fernet 密钥一致、Postgres 主版本一致、walg-r2-bucket 与 profile 一致。