Terraform module 创建及复用(AWS)
简介
Terraform是一种安全有效的基础架构自动化的编排工具,与AWS Cloudformation 类似,不过Tf 更加灵活,支持更为广泛。以下是terraform 的资料连接及文档中提及的配置文件:
Providers:https://www.terraform.io/docs/providers/index.html。
AWS Provider:https://www.terraform.io/docs/providers/aws/index.html
GitHub:https://github.com/bigmay/tf_aws_module2
AWS 资源创建都可以使用代码进行编写配置文件,然后执行plan 进行校验配置文件是否有误,在执行无误的情况下执行“terraform apply”进行资源创建。
Terraform 的执行操作流程

创建VPC Module
Network.tf 配置



vars.tf 变量配置


output.tf 变量配置

创建Security Group Module
sg.tf 配置



vars.tf 配置

output.tf 配置

创建EC2 Module
instances.tf 配置


output.tf 配置

vars.tf 配置

创建Load Balance Module
alb.tf 配置



output.tf 配置

vars.tf 配置

创建RDS Module
mysql.tf 配置



output.tf 配置

vars.tf 配置


创建main 文件
main.tf 配置


variable.tf 配置

Module 引用其他参数
Module 中引用参数均为各resource 中output 的参数值。

Module 引用其他参数示意图。如下,

1.Resource 创建vpc 资源
2.Output vpc_id
3.定义 vpc_id
4.Module 调用vpc_id