在Azure ARM中,我可以將基礎結構作爲代碼,並使用增量部署,如果有人發指令ARM配置(例如刪除ARM模板中的虛擬機),它不會執行刪除(我們可以手動完成並在之後調整ARM模板)。有沒有讓Terraform應用增量的選項?例如非破壞性(類似於Azure ARM增量選項)
Terraform中是否有類似的選項?在stackoverflow中看起來不會使這種方法對我們的操作使用有風險(但適用於內部環境/演示)。
是否有任何適合Terraform風險較低的方法?例如避免意外的資源刪除。
在Azure ARM中,我可以將基礎結構作爲代碼,並使用增量部署,如果有人發指令ARM配置(例如刪除ARM模板中的虛擬機),它不會執行刪除(我們可以手動完成並在之後調整ARM模板)。有沒有讓Terraform應用增量的選項?例如非破壞性(類似於Azure ARM增量選項)
Terraform中是否有類似的選項?在stackoverflow中看起來不會使這種方法對我們的操作使用有風險(但適用於內部環境/演示)。
是否有任何適合Terraform風險較低的方法?例如避免意外的資源刪除。
我不知道你所說的「增量申請」,但Terraform支持應用計劃的意思,所以你需要做的是:
terraform plan -out=plan
這將打印工作將您的基礎架構更改,並創建描述它們的文件。之後,你可以只火
terraform apply plan
,這將只執行,如果基礎設施的狀況還沒有從計劃創建改變給定的計劃。
不確定Azure ARM如何工作,但爲了避免意外刪除,可以在所需資源/模塊的生命週期塊中使用prevent_destroy標誌。
https://www.terraform.io/docs/configuration/resources.html#lifecycle
https://www.terraform.io/docs/configuration/resources.html#prevent_destroy
prevent_destroy(布爾) - 該標誌對 提供額外的保護給定資源的破壞。當此設置爲true時,包含銷燬此資源的任何 計劃將返回錯誤 消息。