使用 terraform 尚未创建的资源时如何使用 terraform 远程状态
how to use terraform remote state when using a resource that is not yet created by terraform
我这里有先有鸡还是先有蛋的情况。
我想将 Terraform 状态存储在 Azure Blob 存储中,但我想先使用 Terraform 创建密钥保管库。
如果密钥保管库存储不存在,我无法指定访问密钥。
我已经求助于使用 bash 首先创建密钥保管库存储,但这不太理想。
有办法解决这个问题吗?
我可以在创建后端存储后使用 terraform 刷新命令吗?
我觉得是可能性的问题,不是先有鸡还是先有蛋的问题
首先,如果要将状态文件存储在azure blob storage中,需要先create storage。创建存储时,访问密钥已经存在。
其次,当您将存储的访问密钥存储在密钥保管库中时,您需要事先拥有访问密钥。我想这就是你认为的问题。但是在创建 Terraform 文件之前访问密钥是必需的,尽管您将密钥存储在密钥保管库中。您可以看到Store Terraform state in Azure Storage中的步骤,无论您是否将访问密钥存储在密钥库中,获取访问密钥都是所有步骤的最开始。
所以你认为不可能的事情。如果要使用Azure存储来存储状态,正确的顺序是:
- 创建一个 Azure 存储帐户和一个容器
- 获取访问密钥并将其设置为环境变量
- 创建 Terraform 文件并使用存储帐户存储状态
我这里有先有鸡还是先有蛋的情况。
我想将 Terraform 状态存储在 Azure Blob 存储中,但我想先使用 Terraform 创建密钥保管库。
如果密钥保管库存储不存在,我无法指定访问密钥。
我已经求助于使用 bash 首先创建密钥保管库存储,但这不太理想。
有办法解决这个问题吗?
我可以在创建后端存储后使用 terraform 刷新命令吗?
我觉得是可能性的问题,不是先有鸡还是先有蛋的问题
首先,如果要将状态文件存储在azure blob storage中,需要先create storage。创建存储时,访问密钥已经存在。
其次,当您将存储的访问密钥存储在密钥保管库中时,您需要事先拥有访问密钥。我想这就是你认为的问题。但是在创建 Terraform 文件之前访问密钥是必需的,尽管您将密钥存储在密钥保管库中。您可以看到Store Terraform state in Azure Storage中的步骤,无论您是否将访问密钥存储在密钥库中,获取访问密钥都是所有步骤的最开始。
所以你认为不可能的事情。如果要使用Azure存储来存储状态,正确的顺序是:
- 创建一个 Azure 存储帐户和一个容器
- 获取访问密钥并将其设置为环境变量
- 创建 Terraform 文件并使用存储帐户存储状态