Terraform之申请AWS的EC2
目录结构
1 | ├── cloud_init.sh # 开机执行脚本 |
variables.tf
输入变量 一个AWS 账号的基础信息
1 | variable "region" { |
main.tf
主配置文件,声明使用的认证信息
1 | provider "aws" { |
instance.tf
实例配置文件, 声明需要在AWS
上创建的资源
1 | resource "aws_instance" "this_ec2" { |
output.tf
输出的参数,后面自动添加cmdb
、jumpserver
等工具使用
1 | output "tag_name" { |
使用方法
1 | terraform apply -var="region=us-east-2" -var="region_az=us-east-2a" -var="instance_type=m5.large" -var="tag_name=test" -var="tag_project=test" -var="storage_number=2" |
参数说明:
region: EC2 所在的region
region-az: EC2 所在的AZ
instance_type: EC2 的实例类型
tag_name: EC2 的tag Key=Name
tag_project: EC2 的tag Key=Project
storage_number: EC2 附加的硬盘,最多附加五块
```
开始拆一下
instance.tf
这里面有四个动作,申请EC2,申请EBS,EC2与EBS绑定,申请EIP与EC2 绑定。好像没啥好说的,写完之后发现好简单。每个方法在官网后面有个output,可以通过定义的方法名.output 的值取到输出的值
emm.. 没啥好讲的,就是这么简单,tf 的难点在于规划,如何把账户,秘钥,配置,脚本,做好规划。这个需要折腾一下。