https://blog.csdn.net/qq_38589895/article/details/105863539
#cd /usr/
#tree terraform/ //此处tree命令只是用来查看目录结构的,具体目录结构需要手动创建
terraform/
├── s3 //S3存储桶
└── vpc //VPC
└── test_environment //测试环境目录
└── vpc.tf //VPC资源代码
3 directories, 1 file
其他分类文件,例如:
详情参照官方文档:https://www.terraform.io/docs/providers/index.html
#配置aws的供应商
provider "aws" {
#配置版本
version = "~> 3.0"
#配置region
region = "ap-northeast-1"
#AWS的访问密钥ID
access_key = "***************"
#AWS的访问密钥
secret_key = "***************"
}
AWS密钥获取:
#创建VPC,别名为test
resource "aws_vpc" "test"{
#定义ip块
cidr_block = "172.16.16.0/21"
#设置允许dns主机名
enable_dns_hostnames = true
#设置标签
tags = {Name = "my test vpc"}
}
#创建internet网关,别名test,并附加到VPC
resource "aws_internet_gateway" "test"{
#绑定到vpc,${aws_vpc.test.id}为获取步骤2创建的vpc id
vpc_id = "${aws_vpc.test.id}"
}
#创建子网,别名a_public
resource "aws_subnet" "a_public"{
#指定所属的VPC
vpc_id = "${aws_vpc.test.id}"
#设置ip块
cidr_block = "172.16.17.0/24"
#设置可用区
availability_zone = "ap-northeast-1a"
#设置标签
tags = {Name = "M2M Tokyo POC Public-a"}
}
#创建路由表
resource "aws_route_table" "a_public"{
#指定所属的VPC
vpc_id = "${aws_vpc.test.id}"
#绑定internet gateway,并绑定到0.0.0.0/0
route{
cidr_block = "0.0.0.0/0"
gateway_id = "${aws_internet_gateway.test.id}"
}
}
2.创建普通的路由表
resource "aws_route_table" "a_private"{
vpc_id = "${aws_vpc.test.id}"
}
#关联子网和路由表
resource "aws_route_table_association" "a_public"{
#指定子网id
subnet_id = "${aws_subnet.a_public.id}"
#指定路由表id
route_table_id = "${aws_route_table.a_public.id}"
}