d33ds/infra-wizard-main
GitHub: d33ds/infra-wizard-main
一个基于 Bash 的 Terraform 和 Ansible 基础设施管理启动器,通过菜单驱动和隔离工作目录简化多云部署与维护流程。
Stars: 0 | Forks: 0
# Infra Wizard
Infra Wizard 是一个基于 shell 的启动器,用于 Terraform 和 Ansible 基础设施
模块。它会为每次部署创建一个隔离的工作目录,并
提供菜单驱动的部署、销毁、DNS 和维护工作流。
## 仓库状态
这个面向公开的代码树仅包含源代码和配置示例。
凭据、证书、Terraform state、运行时工作区、provider
二进制文件、内部开发材料以及特定于组织的值均
被排除在外。
## 环境要求
- Linux 或 WSL
- Bash 4+
- Terraform 1.8+
- Ansible
- `curl`、`jq`、`unzip` 以及 SSH 客户端
- 您打算使用的模块所需的 provider 凭据
在 Debian/Ubuntu 上运行 `./install_tools.sh` 以安装或下载主要的
依赖项。在使用提升的权限运行之前,请先检查该脚本。
## 快速开始
```
git clone https://github.com/d33ds/infra-wizard.git
cd infra-wizard
cp vars.example.sh vars.sh
chmod 600 vars.sh
./install_tools.sh
./wizard.sh
```
Provider 凭据应通过环境变量、本地
`vars.sh` 或未纳入版本控制的 Terraform 变量文件来提供。切勿将有效的机密信息放入
模块的默认值中。
## 配置
`vars.sh` 是可选的,并且会被 Git 忽略。请从 `vars.example.sh` 开始。常见的
Terraform 环境变量包括:
```
export TF_VAR_do_token="..."
export DIGITALOCEAN_SSH_KEY_IDS="12345,67890"
export TF_VAR_aws_access_key="..."
export TF_VAR_aws_secret_key="..."
export TF_VAR_CLOUDFLARE_TOKEN="..."
```
Azure 模块可以使用标准的 `ARM_*` 环境变量或显式的
Terraform 变量。基于证书的模块需要本地 PFX 文件;PFX
文件会被忽略,且不包含在此仓库中。
请参阅 [docs/CONFIGURATION.md](docs/CONFIGURATION.md) 以获取完整的模型。
## 仓库布局
```
modules/ Terraform and Ansible deployment modules
.maintenance/ Temporary Ansible maintenance workspace
lib/ Focused launcher libraries
scripts/ Repository analysis and maintenance utilities
tools/ Local tool downloads (ignored)
wizard.sh Small interactive entry point
wiki/ Markdown source for the GitHub Wiki
docs/ Maintainer and user documentation
```
## 文档
- [快速入门](docs/GETTING_STARTED.md)
- [配置](docs/CONFIGURATION.md)
- [启动器架构](docs/LAUNCHER_ARCHITECTURE.md)
- [模块目录](docs/MODULE_CATALOG.md)
- [模块冗余分析](docs/MODULE_REDUNDANCY.md)
- [模块开发](docs/MODULE_DEVELOPMENT.md)
- [安全性](SECURITY.md)
- [贡献指南](CONTRIBUTING.md)
- [Wiki 发布](docs/WIKI.md)
## 许可证
采用 GNU General Public License v3.0 或更高版本进行许可。请参阅
[LICENSE](LICENSE)。
标签:Ansible, ECS, Shell脚本, Terraform, 内存分配, 基础设施自动化, 应用安全, 系统提示词, 运维工具, 部署管理