0.terraform在linux中的安装操作,请移步->《TerraForm安装》
https://blog.youkuaiyun.com/qq_38589895/article/details/105863539
1.创建一个简单的teralform目录结构
#cd /usr/
#tree terraform/ //此处tree命令只是用来查看目录结构的,具体目录结构需要手动创建
terraform/
├── s3 //S3存储桶
└── vpc //VPC
└── test_environment //测试环境目录
└── vpc.tf //VPC资源代码
3 directories, 1 file
其他分类文件,例如:
- terraform.tfvars --配置provider所需变量
- varables.tf --通用变量
- outputs.tf --输出内容
- resource.tf --资源内容
- provider.tf --provider配置
2.创建代码(供参考)
1.配置aws的供应商(terraform提供了很多云平台的API,此处使用AWS作为示例)
详情参照官方文档: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密钥获取:
- 登录AWS控制台
- 点击个人账户,选择“我的安全凭证”
- 选择“访问密钥”,创建密钥并下载密钥文件保存。
- 更多terraform身份认证方式参照:https://www.terraform.io/docs/providers/aws/index.html
2.创建VPC
#创建VPC,别名为test
resource "aws_vpc" "test"{
#定义ip块
cidr_block = "172.16.16.0/21"
#设置允许dns主机名
enable_dns_hostnames = true
#设置标签
tags = {Name = "my test vpc"}
}
3.创建internet gateway
#创建internet网关,别名test,并附加到VPC
resource "aws_internet_gateway" "test"{
#绑定到vpc,${aws_vpc.test.id}为获取步骤2创建的vpc id
vpc_id = "${aws_vpc.test.id}"
}
5.创建子网
#创建子网,别名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"}
}
6.创建路由表
- 创建关联internet gateway的路由表
#创建路由表
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}"
}
7.关联子网和路由表
#关联子网和路由表
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}"
}