Terraform 0.9.5。Terraform共享狀態
我在組建一個小組,我們的基礎架構團隊和自動化團隊將使用以標準方式,進而創建資源模塊的過程中創建堆棧來提供不同的ENVS。一切運作良好。
喜歡用terraform
共享狀態的所有球隊成爲一個問題。我已經配置terraform來使用s3後端,它是版本化和加密的,通過一個Dynamo數據庫表添加了一個鎖。完善。所有具有本地戶口的工作...好問題...
我們有多個AWS賬戶,1 IAM,1計費,1進行生產,1用於非生產,1共享服務等...你會得到我要去的地方。我的問題如下。
我作爲用戶在我們的IAM帳戶進行身份驗證,並承擔所需的角色。直到我引入terraform後端配置才能將s3用於共享狀態之前,這一直像夢一樣工作。它看起來像terraform內的後端配置需要在〜/ .aws/credentials中設置默認憑證。它看起來像這些必須是s3存儲桶創建帳戶的本地用戶。
有沒有辦法讓後臺的配置設置這樣一種方式,它會使用供應商中配置vim的信任狀和作用?有沒有更好的方式來配置共享狀態和鎖定?任何建議表示歡迎:)
更新:得到這個工作。我在創建s3存儲桶的帳戶中創建了一個新用戶。創建了一個策略,在特定的s3存儲桶和dynamodb表上允許新用戶s3:DeleteObject,GetObject,PutObject,ListBucket和dynamodb:*。創建一個自定義憑證文件並添加分配給該新用戶的訪問密鑰和密鑰的默認配置文件。使用後端配置類似於
terraform {
required_version = ">= 0.9.5"
backend "s3" {
bucket = "remote_state"
key = "/NAME_OF_STACK/terraform.tfstate"
region = "us-east-1"
encrypt = "true"
shared_credentials_file = "PATH_TO_CUSTOM_CREDENTAILS_FILE"
lock_table = "MY_LOCK_TABLE"
}
}
它的工作原理,但有一個初始配置需要發生在您的配置文件,以使其工作。如果有人知道更好的設置或可以識別我的後端配置問題,請讓我知道。
從你的描述來看,很多主要的觀點都是基於這個觀點的。 Terraform從不要求您共享狀態文件。 – BMW
它似乎按預期工作。我爲每個堆棧使用不同的密鑰,並使用一個dynamodb表。 – DMcKenna