状态文件 - terraform.tfstate¶
知识点¶
- Terraform 的状态文件 - terraform.tfstate
官网¶
https://www.terraform.io/language/state
说明讲解¶
tfstate 是什么?¶
.tfstate 文件是 Terraform 管理现有资源状态的文件。
为什么要有 tfstate¶
每当执行 terraform plan 的时候, Terraform 都会为我们比较本地资源的变化和服务器资源的不同。
这点和 CloudFormation 不一样, CloudFormation 是存在云端的。
大家请想一个问题, 为什么我们可以通过 terraform apply 建立出的 EC2, 马上可以通过 terraform destroy 进行销毁呢?
Terraform 是怎么知道该销毁哪台 EC2 的? 会不会将云中的其他 EC2 销毁呢?
如果没有状态管理, 这就很危险。
terraform.tfstate文件的作用¶
- terraform.tfstate*记录了**当前tf管理的资源的状态*。
- 如果我们在此之前执行了
terraform destroy命令,把资源都销毁了,那么*terraform.tfstate*文件里面是看不到任何resources信息的,因为该文件记录的是当前的tf管理资源的状态。 - 但是,Terraform为我们提供了上一次通过tf管理资源的*terraform.tfstate.backup*文件。
一起来看一下 tfstate 文件样例¶
| Bash | |
|---|---|
terraform.tfstate
| JSON | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 | |
强烈建议¶
- 在进行源代码管理时,务必把_terraform.tfstate_文件也管理进去。
- 因为一旦_terraform.tfstate_文件丢失,tf就不知道该管理哪些资源
- _terraform.tfstate_虽然是自动生成自动维护,但确是使用tf管理云资源最最重要的文件,一定不可以丢失。
最后更新:
February 17, 2023
创建日期: February 17, 2023
创建日期: February 17, 2023