跳转至

未来规划与待办 (Roadmap & Backlog)

本文档记录了为了达成“高效、安全、自动化运维”而需在后续实施的计划。

1. 自动化部署 (Project: One-Click Bootstrap)

痛点:手动照着 SOP 敲几十行命令太慢,且容易出错(如少复制一个防火墙规则)。 目标:编写 bootstrap.sh 脚本,实现“开局一把刀,装备全靠刷”。

待实现功能

  • [ ] 系统初始化:自动换源、升级内核、设置自动更新。
  • [ ] 安全加固:自动配置 UFW(只开 SSH)、自动修改 SSH Config(禁密码)。
  • [ ] Docker 安装:自动安装 Docker + Docker Compose。
  • [ ] 环境注入:支持从 URL 或本地文件读取 authorized_keys

预期效果

# 只要在新机器运行一行代码
curl -sL https://github.com/your-repo/bootstrap.sh | sudo bash


2. 操作系统重装方案 (OS Re-installation Strategy)

痛点:现有服务器 (如 London03/Debian11) 需要重装,但上面跑着业务,怕丢数据。 策略:从“原地升级”转向“数据搬运”。

待完善流程

  1. 数据快照 (Backup)
    • 定义标准备份路径:/opt/infra/data
    • 使用 tar 或 Restic 将核心数据打包并上传到 对象存储 (R2/S3) 或 中转机。
  2. 暴力重装 (Wipe)
    • 直接在云控制台 "Terminate" 旧实例,或使用 DD 脚本刷机。
  3. 一键恢复 (Restore)
    • 运行 bootstrap.sh 初始化环境。
    • 从备份点拉取数据解压。
    • docker compose up -d 恢复服务。

3. Debian DD 安装的安全性 (Debian strictly on Oracle)

痛点:Oracle Cloud 默认不提供 Debian 镜像。网上的 "DD 脚本" (网络重装) 存在信任链风险(是否含后门?)。

解决方案评估

方案 难度 安全性 推荐度 备注
A. 使用热门 DD 脚本 中/低 ⭐⭐ 依赖脚本维护者的良心。需检查哈希,尽量用开源高赞脚本 (如 leitbogioro)。
B. 官方自定义镜像 ⭐⭐⭐ 在本地制作 Debian QCOW2 镜像 -> 上传 Oracle Object Storage -> 导入为 Custom Image。最安全,但收费/操作繁琐
C. 放弃 Debian,用 Ubuntu Minimal ⭐⭐⭐⭐ 最务实。Ubuntu 24.04 Minimal 配合 ZRAM,在 1G 机器上表现并不输 Debian 太多,且完全官方支持。

下一步行动

  • [ ] 调研方案 C (Ubuntu Minimal + ZRAM) 在 1G 机器上的真实负载表现。如果能接受,全面统一 Ubuntu 是维护成本最低的解法。
  • [ ] 如果必须用 Debian,研究方案 A 的脚本源码审计。

4. 待优化的繁琐步骤

  • [ ] SSH Key 分发:目前也是手动的,能否集成到 Github/Gitlab 自动获取?
  • [ ] Fail2Ban 预配置:目前还没装 Fail2Ban,这对于公网 SSH 是个隐患,需加入 Bootstrap 脚本。

5. 监控与告警 (Monitoring & Alerting)

痛点:当前主要依赖 "Uptime Kuma" 的被动探测。如果磁盘满了、内存爆了,只有等服务挂了才知道。 目标:建立主动指标监控,提前发现隐患。

待实施方案

  • [ ] 主机指标 (Node Exporter):在 Swarm 节点部署 Node Exporter,采集 CPU/内存/磁盘/网络 I/O。
  • [ ] 容器指标 (Cadvisor):采集每个 Docker 容器的资源使用情况。
  • [ ] 可视化 (Grafana + Prometheus):构建统一的大屏仪表盘。
  • [ ] 告警通知
    • 集成 Telegram/Discord Bot。
    • 设置阈值:CPU > 80% 持续 5分钟,磁盘剩余 < 10%。

6. 日志管理 (Log Management)

痛点:排查问题需要 SSH 到具体节点,docker logs 一个个看,效率极低且日志容易丢失。 目标:日志集中化,支持检索和持久化。

待实施方案

  • [ ] 轻量级方案 (Loki + Promtail)
    • Loki:作为日志存储后端,轻量高效,完美集成 Grafana。
    • Promtail:部署在所有节点,收集 Docker 容器日志并发送给 Loki。
  • [ ] 日志保留策略:设置合理的 Retention Period (如 30 天) 以节省存储空间。

7. CI/CD 流水线 (Continuous Delivery)

痛点:更新服务需要手动 git pull,手动构建镜像,手动 docker stack deploy目标:代码提交即部署 (GitOps)。

待实施方案

  • [ ] 镜像构建 (GitHub Actions)
    • 代码 Push 到 main 分支 -> 触发 GitHub Action。
    • 自动 Build Docker 镜像 -> Push 到 Docker Hub / GHCR。
  • [ ] 自动部署 (Watchtower / Portainer Webhook)
    • 方案 A (简单):Watchtower 定时检查镜像更新并重启容器。
    • 方案 B (推荐):GitHub Actions 构建完成后,调用 Portainer Service Webhook 触发滚动更新。

8. 成本与资源审计 (Cost & Resource Audit)

痛点:Oracle Cloud Free Tier 资源有限 (4 OCPU, 24GB RAM),需要精打细算。 目标:定期审计,释放闲置资源。

定期检查项

  • [ ] 僵尸容器:检查并清理 Exited 状态超过 7 天的容器。
  • [ ] 无用镜像docker image prune -a 清理未被使用的镜像。
  • [ ] 孤儿卷docker volume prune 清理无主的数据卷 (需谨慎!)。
  • [ ] 带宽监控:确保没有被滥用导致流量超标 (虽然 Oracle Free Tier 流量很大,但被 DDoS 不好)。

总结 (Summary)

我们的终极目标是打造一个 GitOps 驱动、全自动化、可观测 的个人基础设施。 从 "Pet" (精心呵护的宠物) 转向 "Cattle" (随时可替换的牲畜)。