d33ds/infra-wizard-web
GitHub: d33ds/infra-wizard-web
一个 Docker 化的 Web 界面工具,通过隔离 worker 对已审查的 Terraform 和 Ansible 模板进行精确的部署规划、应用、配置和销毁管理。
Stars: 0 | Forks: 0
# Infra Wizard Web
Infra Wizard Web 是一个 Docker 化的浏览器界面和隔离的 worker,用于
已审查的 Terraform 和 Ansible 模板。它会创建持久的部署
工作区,并运行 plan、基于精确 plan 的 apply、可重试的配置、
基于原始 state 的 destroy,以及可取消的后台任务。
## 快速开始
将此代码仓库放置在 `infra-wizard-main` 旁边:
```
workspace/
├── infra-wizard-main/
└── infra-wizard-web/
```
然后:
```
cd infra-wizard-web
cp .env.example .env
# 将 INFRA_WIZARD_PASSWORD 设置为至少包含 16 个字符的随机值。
# 默认的容器身份为 UID/GID 10001。
mkdir -p runtime secrets/ssh secrets/backend
sudo chown -R 10001:10001 runtime secrets
chmod 700 runtime secrets secrets/ssh secrets/backend
docker compose up --build
```
打开 。
浏览器会提示输入 `INFRA_WIZARD_USERNAME` 和
`INFRA_WIZARD_PASSWORD`。默认配置仅发布在 localhost 上,
将部署状态和 SQLite 元数据存储在被忽略的 `runtime/` 目录下,
并且仅将凭证挂载到 worker 服务中。
面向 HTTP 的服务不会接收云凭证或 SSH 密钥。
如果挂载的源码树中包含 `vars.sh`,worker 会在启动时加载它,从而
自动获取模块仓库中的本地 provider token。
Deploy 操作会运行 Terraform plan,然后在规划成功后
应用该确切已保存的 plan。它不会重建或静默替换该 plan。
Ansible 配置可以独立重试。Destroy 作用于
Apply 所使用的同一部署工作区和状态。
部署目录具备 provider 感知能力。worker 仅发布就绪
元数据,绝不发布凭证值;没有完整凭证的 provider 会
对模块和 profile 构建器隐藏。部署表单会列出 provider
要求,并将 `allowed_cidr` 默认设为检测到的客户端地址。当
在反向代理后运行时,仅当代理会
覆盖 `X-Forwarded-For` 时,才启用受信任的转发。
部署可以使用现有的 provider SSH 密钥,也可以让 Infra Wizard 生成
一个专用密钥。生成的密钥使用 Ed25519,但在 Azure 上除外,因为在 Azure 上使用的是 RSA 4096,
因为 Azure Linux VM 的配置会拒绝 Ed25519 公钥。私钥会
保留在私有的运行时工作区中,并且可以在成功 apply 后
随生成的 SSH 配置一起下载。
专用的 Ansible 视图包含一个专为已部署机器整理的库。
其 playbook 会安装常用工具、应用系统更新、安装 Docker、
Nginx 或 OpenJDK 25,并执行受控的重启。每次运行都会被记录,
并且可以取消。
已完成任务的历史记录可以被移入 Jobs 归档中,而不会删除其
日志或部署工作区。
GCP、Hetzner 和 Linode 模板目前不受支持且未经测试,因此
被排除在部署选择之外。
## 文档
- [架构](docs/ARCHITECTURE.md)
- [配置](docs/CONFIGURATION.md)
- [运维](docs/OPERATIONS.md)
- [安全性](SECURITY.md)
- [安全加固与迁移](docs/SECURITY_HARDENING.md)
- [贡献指南](CONTRIBUTING.md)
- [Wiki 发布](docs/WIKI.md)
## 许可证
采用 GNU Affero General Public License v3.0 或更高版本进行许可。参见
[LICENSE](LICENSE)。
标签:Ansible, Docker, ECS, Terraform, Web界面, 安全防御评估, 版权保护, 特权提升, 系统提示词, 自动化部署, 请求拦截, 运维工具