无需重新搭建上下文即可执行 Terragrunt 单元

将 Terragrunt 结构保存在 Git 中,在 Semaphore 中保存目录、工作区和输入,为团队提供明确的计划与执行方式。

这条命令会影响哪个基础设施单元?

在 Terragrunt 仓库中,起始目录和参数决定操作范围。仅凭记忆中的一条命令,不足以将操作交给其他人。

将单元及其输入纳入作业

  • 保存包含 terragrunt.hcl 的目录
  • 选择工作区及 Terraform 或 OpenTofu 运行时
  • 在任务输出中查看受影响的单元

让 Terragrunt 操作更容易重复执行

为单个基础设施单元制定执行计划

将模板指向网络、数据库或应用单元,在启动执行计划之前明确其范围。

共享预先准备的作业

跨环境重用同一仓库

为相关环境目录和变量组创建命名模板。将共享配置保存在 Git 中。

共享预先准备的作业

协调范围更广的基础设施变更

配置当前 Terragrunt 版本支持的多单元参数。Terragrunt 评估模块依赖关系,Semaphore 记录任务输出。

在工作流中连接作业

选择 Terragrunt 单元并查看执行计划

从 Terragrunt 发布一直推进到服务就绪

将模块依赖保留在 Terragrunt 中。通过工作流将输出传递到 Ansible 配置,再进行 Python 服务检查。任务失败时,添加诊断分支。

基础设施发布工作流
运行基础设施单元
成功时输出 → 输入
配置系统
成功时输出 → 输入
验证服务
失败时
收集诊断信息

每次运行背后的目录、工具链与状态

保存入口目录

选择包含 terragrunt.hcl 的仓库子目录。如果不同单元或环境需要独立入口,请使用分别命名的模板。

准备 Terragrunt 及其底层二进制文件

在应用设置中启用 Terragrunt Code。在服务器或运行器上安装 terragrunt 和 Terraform 或 OpenTofu 二进制文件,并测试仓库所用的版本组合。

重用变量和工作区设置

变量组提供包括 TF_VAR_ 值在内的环境输入。选择 Terragrunt 工作区清单,并使用为操作配置的后端。

将模块依赖保留在 Terragrunt 中

Terragrunt 评估其配置内的依赖关系,Semaphore 工作流协调独立任务模板。请根据所安装 Terragrunt 版本配置多单元 CLI 参数。

FAQ

为什么应用选项中没有 Terragrunt?

创建模板之前,请在应用设置中启用 Terragrunt Code。该应用默认禁用。还需在执行任务的服务器或运行器上安装 terragrunt 及其使用的 Terraform 或 OpenTofu 二进制文件。

Terragrunt 模板应使用哪个仓库目录?

选择包含目标操作 terragrunt.hcl 的子目录。目录与命令参数决定操作范围。为不同单元或环境使用命名模板,让团队在启动之前即可识别任务将操作哪些对象。

Terragrunt 能使用 OpenTofu 替代底层的 Terraform 吗?

可以。Semaphore 集成支持 Terraform 或 OpenTofu 作为底层二进制文件。请在执行环境中同时准备 Terragrunt 和选定二进制文件,针对配置测试版本组合,并提供所需模块、提供程序和后端访问。

能通过一个模板运行多个 Terragrunt 单元吗?

可以通过模板的 CLI 参数配置多单元操作。请使用当前安装 Terragrunt 版本支持的命令语法。工作目录和参数决定受影响的单元,模块依赖由 Terragrunt 评估。

能为特定单元安排 Terragrunt 计划检查吗?

可以。在 Terragrunt 任务模板中保存目标单元目录和工作区,配置仅执行 Plan,再添加计划。每次定时任务保留独立输出。用于定期多单元操作之前,请先核实命令范围。

Terragrunt 依赖与 Semaphore 工作流有什么区别?

Terragrunt 评估基础设施模块之间的依赖。Semaphore 工作流协调可使用不同工具的任务模板。例如,Terragrunt 发布后可以接续 Ansible 配置和 Python 检查,而不取代 Terragrunt 内部的模块依赖图。

其他团队能运行已保存的 Terragrunt 操作吗?

可以。为团队成员授予执行已准备模板所需的项目访问权限。保存清晰的入口目录、工作区和输入,以便识别操作范围。如果不需要更宽泛的项目访问,可使用 Enterprise 自定义角色将权限限制到选定模板。

如何向 Terragrunt 作业传入变量?

为环境输入关联变量组,包括底层配置使用的 TF_VAR_ 值。额外变量和问卷变量作为受支持的运行输入传递。将提供程序与后端凭据保存在密钥条目中,不要提交到仓库。