将现有Azure资源导入本地Terraform状态文件

webghufk  于 2023-08-07  发布在  其他
关注(0)|答案(2)|浏览(123)

我们有非常大量的Azure资源,这些资源是在我们采用Terraform之前手动创建的。显然,这意味着我们有大量的协调工作要做,就同步我们的terraform状态文件与我们的Azure资源而言。
通过Terraform Import命令单独导入现有资源甚至不是我们想要考虑的选项,因为它不仅麻烦,而且由于这里涉及的资源数量庞大而耗时。
有没有其他方法可以批量或在一个操作中同步/导入这些现有资源到我们的本地状态文件?

gr8qqesn

gr8qqesn1#

我知道这是一个很老的问题,但我们有同样的问题,并使用aztfexport从微软导入我们的东西,一次一个资源组。
我们的流程:
1.从本地terraform目录:
aztfexport rg -o tempdir --non-interactive --continue --hcl-only“您的资源组名称”
1.浏览生成的tempdir/main.tf和资源Map,并仔细检查所有内容。将自动生成的terraform对象名称重命名为对您有意义的名称。
1.一旦你高兴了,就跑:
aztfexport map --non-interactive --append './tempdir/aztfexportResourceMapping.json'
1.将自动生成的main.aztfexport.tf文件中的所有内容移动到您想要的位置,并提交到source。
当然,很多东西可能会出错,但这是高水平。这也生成了很多我从未意识到的对象,例如Terraform可以为您管理的各种Map对象,这些对象仅从Azure门户UI中无法看到。

z18hc3ub

z18hc3ub2#

老实说,这是目前Terraform的失败之一。我建议创建一个包含所有资源导入命令的电子表格,
比如terraform import azurerm_xxx.xxx /subscriptions/XXXXXXXXX/resource/example,然后下一行是相同的,一遍又一遍。然后你可以复制整个序列列表,并将其粘贴到终端(在那里你正在执行terraform导入),然后按回车键。这将需要一段时间,但它会工作。

相关问题