Terraform 远程状态 azure

Terraform remote state azure

我之前使用过 terraform,terraform 可以将 tfstate 文件放在 S3 中。 terraform 是否也支持 azure blob 存储作为后端?将后端设置为 Azure Blob 存储的命令是什么?

截至 Terraform 0.7 (not currently released but you can compile from source) support for Azure blob storage has been added

这个问题需要一些命令,所以我添加了一些更多的细节以备不时之需。我正在使用 Terraform v0.12.24 和 azurerm 提供程序 v2.6.0。你需要两件事:

  1. 创建一个存储帐户(通用 v2)和一个用于存储您的状态的容器。
  2. 配置您的环境和 main.tf

至于第二点,main.tf 中的 terraform 块应包含 "azurerm" 后端:

terraform {
  required_version = "=0.12.24"
  backend "azurerm" {
    storage_account_name = "abcd1234"
    container_name       = "tfstatecontainer"
    key                  = "example.prod.terraform.tfstate"
}

provider "azurerm" {
  version = "=2.6.0"
  features {}
  subscription_id = var.subscription_id
}

在调用计划或申请之前,使用 bash 导出初始化 ARM_ACCESS_KEY 变量:

export ARM_ACCESS_KEY=<storage access key>

最后,运行 初始化命令:

terraform init

现在,如果您 运行 terraform 计划,您将看到在容器中创建的 tfstate。 Azure 内置了文件锁定功能,以防有人试图同时更新状态文件。