【问题标题】:Hashicorp Terraform Remote State and AzureHashicorp Terraform 远程状态和 Azure
【发布时间】:2019-07-28 14:57:59
【问题描述】:

我意识到 Terraform 支持 Azure,实际上我已经能够通过执行以下操作让 Terraform 与 A​​zure 一起工作:

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

Main.tf

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

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

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

【问题讨论】:

    标签: terraform terraform-provider-azure


    【解决方案1】:

    其实就是把Terraform存入Azure Storage Account,我觉得跟本地没什么区别,只是换了个地方而已。但是根据文档中的描述:

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

    看来对数据的安全性还是有一点影响的。

    【讨论】:

    • 感谢您的解释!我想我现在更好地理解了使用远程存储与本地存储的区别。
    【解决方案2】:

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

    您会看到,状态不仅用于存储状态,还用于表示当前正在进行操作。叫locking。借助集中式存储,您的任何队友都不会在其他人已经这样做时意外尝试更改资源。

    【讨论】:

    • 所以基本上,使用远程状态的主要好处之一是它允许多个团队成员/人在同一个项目上工作,这样做使得只有一个人可以在防止意外更改的时间?
    猜你喜欢
    • 2016-11-24
    • 2016-12-22
    • 2021-12-11
    • 2021-02-22
    • 2019-11-04
    • 2018-03-17
    • 2020-03-21
    • 1970-01-01
    • 2017-06-23
    相关资源
    最近更新 更多