DevOps課程-IaC with Terraform 7
在每次執行Terraform指令的時候,每每都會看到以下:
至於Terraform在哪裡儲存這些State,然後跟我寫的Terraform Code比較呢?
其實就在專案目錄內:
其中第一個terraform.tfstate內儲存了真實的infraStructure
不管執行任何terraform指令,首先都會去更新provider端真實的Resource
將當前真實的infraStructure狀態儲存到terraform.tfstate
當真的執行了變更後,才會再次更新terraform.tfstate
像下面執行apply就順便更新了state:
接下來就當前的Code再次執行apply:
回頭看看terraform.tfstate:
往下還會看到:
接著再到terraform.tfstate.backup看到前一版的狀態:
所以我自己整理如下
desired state = Code(如前面寫的main.tf)
current state = refresh過的terraform.tfstate
前一版state狀態 = terraform.tfstate.backup
並且關乎state也有相關指令
#查找關於state相關的指令:
terraform state
#例如state中現在有的resources清單:
terraform state list
顯示特定resource的詳細內容
#顯示特定resource的詳細內容:
terraform state show {剛剛list的名稱}
並且此時我將其中一項resource移除:
再次執行apply指令:
terraform apply -auto-approve
此時terraform.tfstate就剩兩個resources:
當前resource清單就變成: