【问题标题】:how to use terraform remote state when using a resource that is not yet created by terraform使用尚未由 terraform 创建的资源时如何使用 terraform 远程状态
【发布时间】:2020-02-10 17:50:10
【问题描述】:

我这里有鸡和蛋的情况。

我想将 terraform 状态存储在 azure blob 存储中,但我想先使用 terraform 创建密钥库。

如果密钥保管库不存在,我无法指定访问密钥。

我首先使用 bash 来创建密钥保管库,但这并不理想。

有没有办法解决这个问题?

我可以在创建后端存储后使用 terraform refresh 命令吗?

【问题讨论】:

    标签: terraform terraform-provider-azure


    【解决方案1】:

    我认为这是可能性的问题,而不是先有鸡还是先有蛋的问题。

    首先,如果要将状态文件存储在 azure blob 存储中,则需要先创建存储。创建存储时,访问密钥已经存在。

    其次,当您将存储的访问密钥存储在密钥库中时,您需要事先拥有访问密钥。我认为这是您认为的问题。但在创建 Terraform 文件之前,访问密钥是必需的,尽管您将密钥存储在密钥保管库中。您可以在Store Terraform state in Azure Storage 中查看步骤,无论您是否将访问密钥存储在密钥库中,获取访问密钥都在所有步骤的开头。

    所以你认为这是不可能的。如果要使用 Azure 存储来存储状态,正确的顺序是:

    1. 创建一个 Azure 存储帐户和一个容器
    2. 获取访问密钥并将其设置为环境变量
    3. 创建 terraform 文件并使用存储帐户来存储状态

    【讨论】:

    • 我认为你是对的,我认为 terraform refresh 命令可能会神奇地改变存储状态的位置
    猜你喜欢
    • 1970-01-01
    • 2021-01-21
    • 2019-03-19
    • 2021-08-28
    • 2020-11-18
    • 2019-05-19
    • 2020-04-28
    • 1970-01-01
    • 2020-11-20
    相关资源
    最近更新 更多