虽然能够直接在aws后台手动建立服务器等资源,可是这个建立过程重复过程成本比较高,因此能够把这个服务器资源使用terraform这个工具来管理,就能够把服务器资源的管理写到文件中了,服务器资源的管理能够经过修改文件实现html
terraform支持aws,aliyun,ucloud等服务商,完整的服务商列表参考:www.terraform.io/docs/provid…web
terraform是一个命令行工具,下载地址:www.terraform.io/downloads.h…编程
到这个页面https://console.amazonaws.cn/iam/home?#/users 添加新用户,访问类型设置成编程访问 vim
把上面获取到的aws写入terraform配置文件,好比config.tfapi
provider "aws" {
access_key = "aws的accesskey"
secret_key = "aws的secretkey"
region = "aws地区代码"
}
复制代码
aws代码列表参考:docs.aws.amazon.com/zh_cn/gener…bash
而后使用这个terraform init
命令下载aws插件,操做效果以下 服务器
vim vpc.tfapp
resource "aws_vpc" "myvpc" {
cidr_block = "172.17.0.0/16"
enable_dns_hostnames = true
enable_dns_support = true
instance_tenancy = "default"
tags = {
Name = "myvpc"
}
}
复制代码
使用terraform apply在aws上建立这个资源 负载均衡
能够看到这个这个vpc已经建立成功了,能够在aws界面上确认 ide
记下这个vpc的id:vpc-054a32cba12d43efe
vim sn.tf
resource "aws_subnet" "mysubnt-b1" {
vpc_id = "vpc-054a32cba12d43efe"
cidr_block = "172.17.1.0/24"
availability_zone = "cn-northwest-1b"
map_public_ip_on_launch = false
tags {
Name = "mysubnt-b1"
}
}
复制代码
查看操做效果
在这个aws界面上确认
vim ec2.tf
resource "aws_instance" "myinstance" {
ami = "ami-0135cb179d33fbe3e"
instance_type = "t2.medium"
key_name = "dev"
subnet_id = "subnet-0b3cebdaada76cfac"
private_ip = "172.17.1.101"
tags = {
Name = "myinstance"
}
}
复制代码
一样能够在aws网页上确认
好比把上面这个ec2规格修改为:t2.small vim ec2.tf修改后的ec2.tf以下
resource "aws_instance" "myinstance" {
ami = "ami-0135cb179d33fbe3e"
instance_type = "t2.small"
key_name = "dev"
subnet_id = "subnet-0b3cebdaada76cfac"
private_ip = "172.17.1.101"
tags = {
Name = "myinstance"
}
}
复制代码
而后使用这个terraform apply
命令执行修改
能够在aws web界面上进行确认
能够使用命令terraform destroy
删除上面建立的全部资源
操做效果以下
这个terraform能够导入已经存在的资源,参考:www.terraform.io/docs/import…
还能够关注的资源以下:
上面操做后的文件结构以下
这个terraform的配置文件能够定义变量,参考:www.terraform.io/docs/config…
定义负载均衡器参考:www.terraform.io/docs/provid…