terramate-io/terramate
GitHub: terramate-io/terramate
开源的IaC编排与代码生成引擎,帮助团队以栈为单位管理Terraform、OpenTofu等基础设施代码,提供GitOps自动化、变更检测和漂移监控能力。
Stars: 3557 | Forks: 119
Terramate
🚀 入门指南 | 📖 文档 | 💻 Playground | 🙌 加入我们
## 什么是 Terramate? Terramate CLI 是一个开源的编排和代码生成引擎,允许 Infrastructure as Code (IaC)(如 Terraform、OpenTofu、Terragrunt 和 Kubernetes)进行扩展。 Terramate CLI 可以选择与 [Terramate Cloud](https://terramate.io) 配对使用,这是一个完全托管的 SaaS 服务, 它增加了额外的功能来管理和观察在一个或多个存储库中使用 IaC 管理的所有基础设施。 使用 Terramate,您可以: 1. 将大型单体状态文件分解为多个更小的栈,以限制爆炸半径、减少运行时间并实现更好的协作。 2. 通过使用 Terramate 编译器以编程方式生成原生 Terraform 后端和 provider 配置或任何其他任意文件,从而减少代码重复。 3. 使用基于图的编排引擎,在栈中编排任何命令(例如 `terraform apply`)。仅使用基于 Git 的变更检测来部署包含变更的栈。 4. 使用 pull request 和 GitOps 工作流自动化您的 IaC,将您现有的 CI/CD(例如 GitHub Actions、GitLab CI/CD、BitBucket Pipelines、Azure DevOps 等)转变为基础设施自动售卖机。 5. 使用 Terramate Cloud 添加可观察性、漂移检测、资产管理、错误配置检测、事件管理、带有脚手架的开发者自助服务以及 Slack 通知。 ## 为什么选择 Terramate? Terramate 是一种极其轻量级的方法,可以通过单个命令加入任何现有的 IaC 项目, 而无需触及任何现有配置。Terramate 不需要访问您的状态后端、代码或 云账户,这使得在任何环境中使用它都是安全可靠的。当您开始使用 Terramate 时,您可以按功能逐步采用, 并且没有额外的风险,因为 Terramate 不会造成任何硬性锁定。 如果您想了解更多,请查看我们的 [工作原理](https://terramate.io/docs/how-it-works) 指南。 ## 优势 - **即时上手:** 单步即可将 Terramate 加入任何现有架构。无需重构。 - **完全灵活:** Terramate 支持任何架构。Workspaces、Directories、Terragrunt、TFVars —— 我们都能搞定。 - **无锁定:** 随时加入或退出 Terramate。不会对您造成任何供应商锁定。 - **自带 CI/CD:** Terramate 不是 CI/CD 平台。相反,使用您现有的 CI/CD,既经济高效又安全。 - **无限并行:** 运行高度并发的工作流,允许团队并行协作而不会造成等待时间。 - **最佳安全性:** 无需访问您的状态或云账户。Terramate 设计之初就注重安全性。 - **开发者体验:** 通过强加结构、工作流和最佳实践,消除猜测和配置蔓延。 - **无限集成:** Terramate 与您的所有工具(如 GitHub 或 Slack)无缝集成。 - **原生 IaC:** 无需学习新语法!使用 Terramate,一切皆通过 HCL 配置即代码。 - **无服务器:** 使用 Terramate 不需要您运行和维护任何额外的基础设施。 ## 安装 ### 安装 Terramate CLI 首先安装 Terramate CLI。 使用 brew: ``` brew install terramate ``` 使用 Go: ``` go install github.com/terramate-io/terramate/cmd/...@latest ``` 有关其他安装方法,请参阅 [文档](https://terramate.io/docs/cli/installation)。 ### 将 CLI 连接到 Terramate Cloud 为了充分利用 Terramate,[注册免费的 Terramate Cloud 账户](https://cloud.terramate.io) 并将 Terramate CLI 与您的 Terramate Cloud 账户连接: ``` terramate cloud login ``` ## 入门 Terramate 可以通过单个命令加入任何现有的 Terraform、OpenTofu 或 Terragrunt 项目,且无需 任何重构。有关详细信息,请参阅以下指南: - [从现有 Terraform 项目开始](https://terramate.io/docs/cli/on-boarding/terraform) - [从现有 OpenTofu 项目开始](https://terramate.io/docs/cli/on-boarding/opentofu) - [从现有 Terragrunt 项目开始](https://terramate.io/docs/cli/on-boarding/terragrunt) - [从零开始](https://terramate.io/docs/cli/getting-started/) ## 功能 - **多环境**:使用任何现有方法(如 workspaces、directories、Terragrunt、TFVars、部分后端配置等)管理多个环境。 - **依赖关系**:通过输出共享和基于图的编排管理环境之间的依赖关系。 - **编排:** 在栈中运行任何命令和可配置的工作流,具有无限并发性。 - **变更检测:** 仅执行包含变更的栈。允许检测引用的 Terraform 和 OpenTofu 模块以及 Terragrunt 依赖项中的变更。 - **代码生成:** 生成 **HCL**、**JSON** 和 **YAML** 等代码,以保持栈的 [DRY](https://en.wikipedia.org/wiki/Don%27t_repeat_yourself)(不要重复自己)。 - **自动化蓝图:** 针对 GitHub Actions、GitLab CI/CD、BitBucket Pipelines 等的预配置 GitOps 工作流,以在您现有的 CI/CD 中启用 Pull 自动化和计划预览。 - **漂移管理:** 通过计划工作流和部署后漂移检测来检测和协调漂移。 - **可观察性、可见性和洞察:** 为您的栈、部署和资源提供可操作的洞察和可观察性。 - **错误配置检测**:使用诸如 Center of Internet Security Benchmarks (CIS) 等框架,通过 500 多个预配置策略检测和补救错误配置。 - **资产管理**:获取由多个团队、环境和存储库管理的所有基础设施资源的清单。 - **审计跟踪**:跟踪和审查所有基础设施变更以确保合规性和安全性。 - **警报**:管理诸如部署失败或漂移等事件,并通过自动分配给正确的团队和个人的警报进行处理。 - **Slack 集成**:在集中的 Slack 频道中集成通知或通过我们的 Slack Bot 直接通知用户,而不会引起通知疲劳。 - **脚手架**:通过允许开发人员构建复杂的基础设施配置而无需详细了解 Terraform 或 Terramate 等工具,从而实现开发者自助服务。 ## Terramate CLI 与 Terramate Cloud
标签:API集成, BitBucket Pipelines, EC2, ECS, EVTX分析, GitHub Actions, GitLab CI/CD, GitOps, Go, IaC, OpenTofu, Ruby工具, Slack通知, Terraform, Terragrunt, 代码生成, 占用监测, 可观测性, 子域名突变, 开源, 日志审计, 渗透测试工具, 漂移检测, 编排平台, 网络空间测绘, 自动化运维, 自动笔记, 资产管理