我是 Terraform 世界的新手。我已經開始使用 TF 為 Azure 開發 IaC。
關于使用 TF,我有以下三個疑問:
- 如果狀態檔案被意外洗掉,有沒有辦法從 Azure 資源的當前狀態恢復/重新創建狀態檔案?
- 對于 Azure,如果從 Azure 門戶對 Azure 資源進行一些直接更改,是否有辦法將這些更改自動改造成 Terraform .tf 或狀態檔案?
- 有沒有辦法為直接從門戶創建的任何現有 Azure 資源生成 terraform 檔案?
uj5u.com熱心網友回復:
- 如果狀態檔案被意外洗掉,有沒有辦法從 Azure 資源的當前狀態恢復/重新創建狀態檔案?
您應該將 Terraform 配置為使用保存狀態檔案的每個版本的后端,并且使洗掉狀態檔案變得非常困難。如果您使用 Azure 作為后端,那么我相信這將意味著啟用Blob 版本控制和對 blobs 的軟洗掉。
免責宣告:我不使用 Azure,所以可能還有更多。在 AWS 上,您將啟用 S3 存盤桶版本控制和 MFA 洗掉,我鏈接的功能似乎與 Azure 等效。
- 對于 Azure,如果從 Azure 門戶對 Azure 資源進行一些直接更改,是否有辦法將這些更改自動改造成 Terraform .tf 或狀態檔案?
您需要運行terraform plan并檢查輸出以查看當前 Azure 資源與 Terraform 配置有何不同,然后更新您的 Terraform 配置,直到terraform plan說沒有更改。
- 有沒有辦法為直接從門戶創建的任何現有 Azure 資源生成 terraform 檔案?
有一些工具,例如terraformer嘗試這樣做,但根據我的經驗,它們總是缺少對大量功能的支持,并且通常根本無法正常作業。
uj5u.com熱心網友回復:
首先規則:必須定期備份您的狀態檔案!嘗試在遠程位置配置您的 Terraform 后端,例如 Google Cloud Storage
回答您的問題:
- 恢復已洗掉狀態檔案的程序絕非易事。您應該使用 . 匯入所有資源
terraform import。檢查這個檔案。
如果有人通過 Azure 門戶更改資源并且您
terraform plan在您的環境中進行了更改,則應檢查更改是否在 Terraform 之外完成。然后,您應該在應用您的代碼后更新您的代碼以匹配這些更改。澄清一下,如果有人更改了您的代碼,instance_type = c4.xlarge并且您在您的代碼中擁有instance_type = t3.micro,如果您應用您的代碼,那么該更改將被還原,因此如果您想繼續使用實體,c4.xlarge您應該更改您的代碼。我不使用任何型別的工具,但我可以想象它們存在。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/521471.html
