如何解决Terraform重命名状态文件
在拥有资源的情况下如何重命名.tfstate?示例如下所示。
terraform {
backend "s3" {
bucket = "px-terraform-state"
region = "ap-southeast-1"
key = "network/transaction-logs.tfstate"
encrypt = true
dynamodb_table = "px-terraform-state"
}
}
到
terraform {
backend "s3" {
bucket = "px-terraform-state"
region = "ap-southeast-1"
key = "network/sftp-logs.tfstate"
encrypt = true
dynamodb_table = "px-terraform-state"
}
}
解决方法
有两个主要选项。
首先是像在此一样更改配置,然后运行terraform init
,此时Terraform应该提供将状态自动从旧位置迁移到新位置的功能。如果确认,Terraform将从旧位置读取状态,将其写入新位置,然后删除旧位置。
另一种选择是将对象直接在S3中移动到新位置,然后按照显示的那样更改配置,最后运行terraform init -reconfigure
,其中-reconfigure
选项禁用我描述的自动迁移行为在上一段中,只是将新配置用作旧配置的直接替代品,而完全忘记了旧配置。成功完成后,您应该确保在旧位置仍然没有状态快照,因为否则将来有人会发现它,并且会混淆哪个是最新的快照。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。