如何操作Azure Blob存储上的远程Terraform状态文件

lo8azlld  于 2022-12-04  发布在  其他
关注(0)|答案(2)|浏览(146)

我使用的订阅具有几个不同的已部署环境(开发、测试、过渡等)。每个环境都有自己的存储帐户,包含关联的Terraform状态文件。这些环境通过Azure DevOps管道部署。
通过门户、CLI等,很容易获取以这种方式创建的.tfstate文件。
但是是否可以使用'terraform state'命令访问这些状态文件,例如使用Azure Cloud Shell?如果可以,如何将它们指向正确的位置?
我试过在云 shell 中使用terraform状态命令,但是不清楚如何将它们指向正确的位置,或者这是否确实可行。

11dmarpk

11dmarpk1#

对于这些需求,您需要AzurePowerShell任务来实现您的需求。

1,首先,如果您可以通过Azure门户中的PowerShell功能实现您的要求,则可以使用AzurePowerShell任务实现相同的要求(AzurePowerShell基于您提供的服务连接/服务主体在代理上运行。)

- task: AzurePowerShell@5
  inputs:
    azureSubscription: 'testbowman_in_AAD' #This service connection related to service principal on Azure side.
    ScriptType: 'InlineScript'
    Inline: |
      # Put your logic here.
      # Put your logic here.
    azurePowerShellVersion: 'LatestVersion'

2,其次,您可以使用AzCopy下载文件,然后对其进行操作。DevOps Microsoft主机代理支持此工具。

pprl5pva

pprl5pva2#

运行以下命令:tfstate(你可以给予像thils dev. tfstate这样的扩展名tfstate很重要)。
所有你需要移动到terraform文件目录enter image description here
并运行以下命令terraform state pull〉dev.tfstate
enter image description here

相关问题