state管理命令
Terraform 在完成资源的创建和修改后,会将资源的状态和属性信息会保存在 terraform.tfstate 文件中。我们可以使用 "terraform state" 相关命令对 state 进行管理。
terraform state list
该命令列出当前state文件中配置的所有资源,输出格式为:<资源类型>.<资源名称>
$ terraform state list data.huaweicloud_identity_role.role_example huaweicloud_identity_group_membership.membership_example huaweicloud_identity_group.group_example huaweicloud_identity_user.user_example random_password.password
terraform state show
该命令可以查看某个资源的所有属性值,命令格式为:terraform state show <资源类型>.<资源名称>
$ terraform state show huaweicloud_identity_user.user_example # huaweicloud_identity_user.user_example: resource "huaweicloud_identity_user" "user_example" { domain_id = "0970d7b7d400f*************a03560" enabled = true id = "0aa800908f00f35b1f92c0038250d042" name = "user_example" password = (sensitive value) region = "cn-north-1" }
terraform state rm
该命令用于在state文件中移除指定的资源,而非真正从华为云中将资源删除,命令格式为:terraform state rm <资源类型>.<资源名称>
$ terraform state rm huaweicloud_identity_group_membership.membership_example Removed huaweicloud_identity_group_membership.membership_example Successfully removed 1 resource instance(s).
terraform state mv
该命令用于变更指定资源的存放地址,主要用法有:
- 变更资源名称
命令格式为:terraform state mv <资源类型>.<资源名称1> <资源类型>.<资源名称2>
$ terraform state mv huaweicloud_identity_group_membership.membership_example huaweicloud_identity_group_membership.membership_1 Move "huaweicloud_identity_group_membership.membership_example" to "huaweicloud_identity_group_membership.membership_1" Successfully moved 1 object(s).
- 变更资源路径
用于将指定资源从当前 state 文件中移动至另一个指定 state 文件中,同时可以变更资源名称,命令格式为:
terraform state mv -state-out=state文件相对/绝对路径 <资源类型>.<资源名称1> <资源类型>.<资源名称2>$ terraform state mv -state-out=../vpc_basic/terraform.tfstate huaweicloud_identity_user.user_example huaweicloud_identity_user.user_1 Move "huaweicloud_identity_user.user_example " to "huaweicloud_identity_user.user_1" Successfully moved 1 object(s).