Hashicorp Terraform远程状态和Azure

时间:2019-03-06 20:28:28

标签: terraform terraform-provider-azure

我意识到Terraform支持Azure,实际上我可以通过执行以下操作使Terraform与Azure一起使用:

  • 创建一个存储帐户
  • 创建Blob容器
  • 插入访问密钥
  • 使用resource_group_name,storage_account_name,container_name,access_key和键值创建了一个名为backend.tfvars的文件。
  • 在main.tf中添加了以下内容:

Main.tf

terraform {  
  backend "azurerm" {  
     }  
}  
  • 我跑了terraform init -backend-config="backend.tfvars"

当我在Blob容器中查看时,我看到了myapp.tfstate文件,这意味着我已经成功了,对吧?

这究竟允许我做什么?我知道我的状态文件现在保存在Azure中,但是...这对我有什么帮助?我到处寻找解释此问题的文档,但由于某种原因未能找到任何东西。

2 个答案:

答案 0 :(得分:0)

实际上,将Terraform存储在Azure存储帐户中,我认为它与本地没有什么不同,只是替换了该位置。但是根据文档中的描述:

  

默认情况下,存储在Azure Blob中的数据在被加密之前被加密   坚持存储基础架构。当Terraform需要状态时,   它是从后端检索的,并存储在您的内存中   开发系统。在此配置中,状态在Azure中受保护   存储并且未写入本地磁盘。

似乎对数据的安全性影响仍然很小。

答案 1 :(得分:0)

查尔斯是对的​​,“只是”在另一个地方是对的,但是他错了,没有区别。它们是有区别的。主要区别在于您是否有一支与TF合作的团队。

您会看到,状态不仅用于存储状态,而且还表示当前正在进行某项操作。称为locking。有了集中式存储,当别人已经这样做时,您的队友就不会意外尝试更改资源。