雖然能夠直接在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
將用戶添加到Administrators組,這樣這個用戶就有訪問aws資源的權限了 點擊下一步,操做效果以下 這裏記錄下這裏生成的訪問密鑰ID和私有訪問密鑰,terraform經過這個密鑰認證把上面獲取到的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界面上確認
記下這個subnet id: subnet-0b3cebdaada76cfacvim 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…