使用docker-compose和make构建最强的Terraform本地执行环境
已经形成了Terraform本地执行环境的个人最佳实践…啊!!- Toshii@基础架构工程师 (@Tocyuki) 2020年5月26日
因此,我想向大家介绍一下我个人关于Terraform本地执行环境的最佳实践方案!
这次要做的事情 cì zuò de
-
- Terraformで作成するリソースはVPCのみ
docker-compose + make によるTerraformローカル実行環境の構築
目录结构
目录结构大概是这样的,简而言之,我们使用Hashicorp官方的Terraform Docker镜像来准备Terraform的执行环境,并使用make命令来封装。
.
├── LICENSE
├── Makefile
├── README.md
├── docker-compose.yml
└── terraform
├── main.tf
└── modules
└── aws
└── network
├── variables.tf
└── vpc.tf
关于每个文件
vpc.tf的中文释义。
只是创建一个10.0.0.0/16的虚拟专用云(VPC)!
resource "aws_vpc" "vpc" {
cidr_block = var.vpc_cidr
enable_dns_support = true
enable_dns_hostnames = true
}
docker-compose.yml的中文翻译可以是:镜像编排文件。
使用Hashicorp官方提供的Docker镜像进行配置的docker-compose.yml!
version: '3.6'
services:
terraform:
image: hashicorp/terraform:0.12.24
container_name: terraform
volumes:
- ./terraform:/terraform
env_file: .env
working_dir: /terraform
顺便一提,.env文件只需填写 AWS 的凭证!
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=
生成文件
.PHONY: init plan apply destroy check
init: check
@docker-compose run --rm terraform init
plan: check
@docker-compose run --rm terraform plan
apply: check
@docker-compose run --rm terraform apply
destroy: check
@docker-compose run --rm terraform destroy
check:
@docker-compose run --rm terraform fmt -recursive
@docker-compose run --rm terraform fmt -check
@docker-compose run --rm terraform validate
有了Makefile,您可以很容易地通过make命令来执行Terraform!
➜ terraform-best-executable-env (master) ✗ make check
docker-compose run --rm terraform fmt -recursive
docker-compose run --rm terraform fmt -check
docker-compose run --rm terraform validate
Success! The configuration is valid.
因此
最近,我正在使用类似的方法使用Ansible和Packer等工具创建本地执行环境。个人觉得这种方式非常简洁,通过命令执行非常顺利,感觉很不错。所以请务必试一试看看吧^^
代码已经上传到GitHub,顺便使用GitHub Actions轻松搭建了Terraform的CI环境,非常简单易用。如果你感兴趣的话,可以去看看哦!