Azure 在blob存储帐户中组织地形状态

Azure 在blob存储帐户中组织地形状态,azure,terraform,Azure,Terraform,我不熟悉使用terraform进行azure资源管理 我正在使用azure blob存储作为terraform状态文件的后端 我的项目由多个存储库组成,这些存储库映射到azure订阅中的资源组 repository-a ---> azure-rg-a repository-b ---> azure-rg-b 我的存储库的一般结构包括 repo-a - src - infra - env - dev.tfvars - xxx.tfvars (one p

我不熟悉使用terraform进行azure资源管理

我正在使用azure blob存储作为terraform状态文件的后端

我的项目由多个存储库组成,这些存储库映射到azure订阅中的资源组

repository-a ---> azure-rg-a
repository-b ---> azure-rg-b

我的存储库的一般结构包括

repo-a
- src
- infra
   - env
      - dev.tfvars
      - xxx.tfvars (one per env)
   - main.tf
- tests
-------------------------------------------
repo-b
- src
- infra
   - env
      - dev.tfvars
      - xxx.tfvars (one per env)
   - main.tf
- tests
一个团队负责存储库和资源组。设置blob存储的最佳位置是什么

我试过/想过做什么
  • 选项A:为每个资源组保留blob存储。
    • 缺点:我不喜欢让这么多存储帐户只用于状态管理的想法
  • 选项B:在基础架构的单独资源组中保留blob存储

在AWS中,我们启用版本控制并防止删除,除非使用MFA根目录,否则严格限制对该存储的访问。此外,当您有一个包含CICD for infra的共享帐户时,最好使用一个单一的真实来源来保存状态文件

azure-rg-repo-a
 - repo-a-storageaccount
   - tfstate (container)
     - tfstate.tfstate (state file)

azure-rg-repo-b
 - repo-b-storageaccount
   - tfstate (container)
     - tfstate.tfstate (state file)
azure-rg-infrastructure
 - repo-infra-storageaccount
   - tfstate (container)
     - repo-a.tfstate (state file for repo-a)
     - repo-b.tfstate (state file for repo-b)