Terraform远程状态azure

时间:2016-07-20 22:39:26

标签: azure terraform

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

2 个答案:

答案 0 :(得分:1)

Terraform 0.7开始(目前尚未发布但您可以从源代码编译)对Azure blob存储的支持为added

答案 1 :(得分:0)

这个问题要求一些命令,所以我添加了一些细节,以防有人需要。我正在使用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>

最后,运行init命令:

terraform init

现在,如果您运行Terraform Plan,您将看到在容器中创建的tfstate。 Azure内置了文件锁定功能,以防任何人尝试同时更新状态文件。