我使用本地计算机上的tf代码部署了AWS基础设施,该代码将terraform.tfstate存储在我的计算机上。现在,我希望其他开发人员引用相同的状态文件,因此我将代码复制到github repo并添加了state.tf,并将terraform.tfstate从本地计算机复制到了状态文件指向的s3存储桶前缀。我还对存储库进行了一项更改,而不是将其分成一个大的tf文件,而是将其分为三个文件-state.tf,vpc.tf和dynamodb.tf。
我的state.tf文件:
terraform {
backend "s3" {
bucket = "testing-d-tf-state"
key = "aws-xyz/terraform.tfstate"
region = "us-west-2"
}
}
但是,当我的开发人员在他的机器上运行代码时,他会得到
计划:添加26个,更改0个,销毁25个。
我无法弄清楚为什么他没有正确刷新terraform.tfstate文件以进行读取,以至于他没有得到“添加”或“破坏”,因为没有对基础结构进行任何更改。
答案 0 :(得分:0)
您不应该手动将terraform.tfstate
文件复制到远程位置。对backend
信息进行编码后,您将重新运行terraform init
,Terraform将负责为您在本地和远程存储桶中正确设置该信息。
完成此操作后,您需要做一些事情来确认它是否有效:
terraform.tfstate
文件。terraform.tfstate
文件(以防万一,请不要删除它),然后运行类似terraform state list
的东西来查询状态文件。如果有效,则您的远程状态配置有效。