可参考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"