我通常更喜欢将状态文件存储到远程即S3。这次我在噩梦中恢复状态,因为S3存储桶被删除了。虽然,我在本地有状态文件,但没有用。我收到此错误:
$ terraform init -reconfigure
Initializing modules...
- module.ca
- module.etcd
- module.master
- module.network
- module.node
- module.output-store
- module.rds
Initializing the backend...
Error inspecting states in the "s3" backend:
NoSuchBucket: The specified bucket does not exist
status code: 404, request id: 30937B3sdfsd16F978120, host id: 3lOPzk8+Me+7NHgmC+YCTJBNXH34t0rLUdm9lYU/mkuDsdAWFEp+zbwUZzOL4wgXnREY4OFTDpbv69cwk=
Prior to changing backends, Terraform inspects the source and destination
states to determine what kind of migration steps need to be taken, if any.
Terraform failed to load the states. The data in both the source and the
destination remain unmodified. Please resolve the above error and try again.
在terraform中是否有一种方法可以在不使用reconfigure选项的情况下将后端再次强制为local,从而开始考虑local中的状态文件?请指教。
答案 0 :(得分:2)
创建s3存储桶并从本地上传状态文件
答案 1 :(得分:0)
即使使用远程状态选项,本地也会保存一些状态。它存储在.terraform/terraform.tfstate
文件中。您可以删除整个目录(这将需要下载所有模块和提供程序),也可以仅从状态或整个文件中删除backend
键。