未来规划与待办 (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) 需要重装,但上面跑着业务,怕丢数据。 策略:从“原地升级”转向“数据搬运”。
待完善流程¶
- 数据快照 (Backup):
- 定义标准备份路径:
/opt/infra/data。 - 使用
tar或 Restic 将核心数据打包并上传到 对象存储 (R2/S3) 或 中转机。
- 定义标准备份路径:
- 暴力重装 (Wipe):
- 直接在云控制台 "Terminate" 旧实例,或使用 DD 脚本刷机。
- 一键恢复 (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" (随时可替换的牲畜)。