bhupinderhappy777/homelab-ops
GitHub: bhupinderhappy777/homelab-ops
一个基于 IaC 的端到端家庭实验室框架,自动化部署高可用环境并实现零信任与可观测性。
Stars: 0 | Forks: 0
# homelab-ops
## **概述**
本仓库使用**基础设施即代码(IaC)**自动化部署和管理高可用家庭实验室。架构优先考虑可复现性、零信任网络和自动化测试。它作为一个持续学习环境,用于现代系统架构、配置管理和 DevOps 实践。
## **架构栈**
* **供应(Provisioning):** Terraform
* **配置(Configuration):** Ansible(操作系统加固与逻辑)
* **编排(Orchestration):** K3s(轻量级 Kubernetes)
* **网络(Networking):** Tailscale(VPN)& Cloudflare(隧道/DNS)
* **可观测性(Observability):** Prometheus、Loki、Grafana(PLG 栈)
* **备份(Backups):** S3 兼容存储
## **DevOps 与 CI/CD 流水线**
为确保基础设施代码在部署前可靠,本仓库强制执行严格的 CI/CD 实践:
* **预提交钩子(Pre-commit Hooks):** 本地防止不良提交。检查尾随空白、YAML 语法和格式。
* **Linting:** `tflint` 用于 Terraform,`ansible-lint` 和 `yamllint` 用于 Ansible。
* **Molecule 测试:** Ansible 角色在部署到真实虚拟机之前,先通过临时 Docker 容器进行测试。这确保配置按预期工作且不会破坏现有实验室环境。
* **自动化流水线:** GitHub Actions 在每个拉取请求上自动运行 Linter 和 Molecule 测试。
## **密钥管理策略**
本项目强制执行“明文无密钥”策略。密钥在运行时注入。
| 层级 | 工具 | 用途 |
| :--- | :--- | :--- |
| **个人** | Bitwarden CLI(`bw`) | API 令牌和 Ansible Vault 主密码的根来源。 |
| **自动化** | Ansible Vault | 加密主机特定变量。通过 Bitwarden 包装器脚本即时解密。 |
| **运行时** | HashiCorp Vault | 为 K3s 工作负载提供动态密钥注入。 |
标签:Ansible, ansible-lint, Bitwarden, Cloudflare, DNS, EC2, ECS, GitHub Actions, GitHub Advanced Security, Grafana, HashiCorp Vault, Homelab, IaC, JSONLines, K3s, Loki, MITRE ATT&CK, Molecule, Mutation, OS配置, PLG堆栈, S3备份, Tailscale, Terraform, tflint, VPN, yamllint, 可视化, 多引擎聚合, 安全加固, 家酿实验室, 对象存储, 异地备份, 日志聚合, 沙盒环境, 漏洞探索, 特权提升, 监控系统, 系统提示词, 系统架构学习, 自动化部署, 自动笔记, 自定义请求头, 观测性, 轻量级K8s, 运行时密钥注入, 隧道, 零信任