可參考terraform文,主要用來操作雲平臺。並抽提出module的概念。
在這個最佳實踐中的框架爲:
terraform下,有兩個目錄,一個module,一個provider。module下放基本的執行文件,比如main.tf,variable.tf,等等。provider是不同的調用者的存儲路徑,比如dev和prod和qc和Uat區別開,這個目錄下放terraform.tfvars和backend文件,有時候沒有backend文件,而是指定一個遠程的backend,比如s3的。
基本格式如下:
provider "aws" {
region = "${var.region}"
}
resource "aws_key_pair" "ecs" {
key_name = "${var.key_name}"
public_key = "${file(var.public_key_path)}"
}
terraform {
backend "s3" {
bucket = "remote-state-file"
encrypt = true
key = "xxxxx/terraform.tfstate"
region = "us-east-1"
}
}
module "ecs" {
source = "../../../modules/aws/xxx/ssss"