簡體   English   中英

在運行 terraform init 之前創建 Azure 存儲帳戶和容器?

[英]Make Azure storage account and container before running terraform init?

如果我錯了,請糾正我,當您運行terraform init ,系統會要求您為 terraform 狀態命名存儲帳戶和容器。

這些也可以用 terraform 自動制作嗎?

編輯:我正在使用 Azure。

我通常將我的 terraform 配置分成兩部分。

一種使用容器創建存儲帳戶,帶有特定標簽(例如tf=backend )。 第二個創建所有其他資源。 我在兩者之間共享一個backend.tfvars ,在第二個中,我使用 Azure CLI 和先前設置的標記獲取存儲帳戶密鑰(這樣我就不必獲取密鑰並將其手動傳遞給我的第二個腳本)。

如果您不想依賴本地狀態,您甚至可以在部署后遷移第一個 terraform 配置的狀態

是的,一點沒錯。 通常,您希望每個環境都有一個 S3 存儲桶,但也可以在所有環境中共享一個存儲桶,然后使用存儲桶策略設置訪問控制。 不要在配置其他資源的過程中創建此存儲桶,因為它們的生命周期可能會有所不同(您可能希望將存儲桶保留很長時間並且不太可能想要銷毀它)。

您要做的是首先使用本地狀態在 Terraform 中定義此存儲桶。 創建后,您添加一個指向此存儲桶的遠程后端。

terraform {
  required_version = ">= 0.11.7"

  backend "s3" {
    bucket = "my-state-bucket"

    key = "s3_state_bucket"

    region = "us-west-2"

    encrypt = "true"
  }
}

運行terraform init ,Terraform 會詢問您是否要將本地狀態文件遷移到 S3。 回答是,完成后您可以刪除本地狀態文件,因為它不再使用。

這種方法允許您打破這種先有雞還是先有蛋的情況,仍然將所有基礎設施作為代碼進行管理,而不是使用 Web 控制台或 bash 腳本手動創建。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM