首页 > 解决方案 > 使用每个管道的 Azure 存储容器管理 terraform 状态的有效方法

问题描述

作为我们通过 Terraform 实施的 IaC 工作流程的一部分,对于我们为用户提供的一些公共资源,我们希望创建一个集中的远程状态存储。我们使用的是 Azure 云,因此默认选择是使用 Azure Blob 存储。我们最初考虑为每个管道创建一个存储容器并将状态存储在那里。但是还有另一种想法,即创建一个容器并为每个管道创建目录结构并将状态存储在那里。我理解 Blob 存储默认是平面文件系统。但 Azure 存储还提供了一个选项,可以使用 ADLS2 启用分层文件结构。是否有人尝试通过在 Azure 中启用分层文件系统结构来存储 terraform 状态?那是一个有效的选择吗?另外,任何人都可以建议在我的场景中推荐的方法是什么?

谢谢廷图

标签: azureterraformazure-storage

解决方案


从未尝试过使用 ADLS2 的分层功能。但是由于您的要求是将状态文件保存在同一个容器中但在不同的文件夹中,您可以尝试在 backend.tf 中配置后端时指定不同的文件夹结构

terraform init backend-config "key=$somePath/<tfstate-file-name>.tfstate" 

并从不同的 backend.tfvars 文件传递​​不同的 somePath 值。

我希望这回答了你的问题!


推荐阅读