【Terraform】操作tfstate文件的方法

首先

我在使用Udemy学习了Terraform,因此这是关于如何操作tfstate文件的学习备忘录。

 

请确认预先创建的环境资源清单。

您可以使用以下命令来查看已创建资源的列表。

$ terraform state list

确认资源详细信息

您可以使用以下命令来查看已创建的资源的详细信息。

$ terraform state show <詳細情報を確認したいリソース名>

修改资源名称

只修改代码会导致与tfstate文件产生差异,所以在修改代码之前先更改tfstate文件。

更改资源名称的方法

首先,修改tfstate文件。

$ terraform state mv <移動元リソース名> <移動先リソース名>

最后修正代码并在计划中确认。

$ terraform plan # 差分がでなければOK

资源的获取

当您想要使用Terraform管理手动创建的资源时,
您可以使用以下命令进行导入:$ terraform import <要导入的资源名称> <要导入的资源ID>。

资源的导入方法

首先,创建一个空的资源块。

resource "aws_instance" "test" {

}

执行导入命令

$ terraform import aws_instance.test <手動で作成したEC2のID>

由于tfstate文件中详细地记录了信息,所以我们要确认其内容。

$ terraform state show aws_instance.test

在aws_instance中,填写确认内容作为必填项,然后完成。

resource "aws_instance" "test" {
  ami           = ""
  instance_type = ""
}

从tfstate中删除资源

只有更改代码会导致tfstate文件产生差异,所以需要先修改tfstate文件,然后再修改代码。

从tfstate中删除资源的方法

首先,从源代码中开始,删除需从tfstate管理中排除的资源。
然后,使用命令从tfstate中删除资源。

$ terraform state rm <管理対象外にしたいリソース名>

最后,我们会在计划中确认。

$ terraform plan # 差分がでなければOK

目前状况的反映

在实际的云端状态下,将其反映到tfstat文件中。
当使用terraform管理的资源因手动更改而产生问题时,可以通过此方法将其恢复至代码状态。

目前状况的反映方式 de shì)

用命令将实际云上的状态反映到tfstat文件中。

$ terraform refresh

将代码恢复到先前的状态。

$ terraform plan # 手動で操作した箇所が差分で表示されます 
$ terraform apply
广告
将在 10 秒后关闭
bannerAds