[英]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.