
【Terraform】Terraform自动创建云服务器脚本
地域名称 所在城市 region id 可用区数量 华北 1 青岛 cn-qingdao 2 华北 2 北京 cn-beijing 7 华北 3 张家口 cn-zhangjiakou 2 华北 5 呼和浩特 cn-huhehaote 2 华东 1 杭州 cn-hangzhou 8 华东 2 上海 cn-shanghai 6 华南 1 深圳 cn-shenzhen 5 西南 1 成都 cn-chengdu 1 中国香港 香港 cn-hongkong 2 亚太东南 1 新加坡 ap-southeast-1 3 亚太东南 2 悉尼 ap-southeast-2 2 亚太东南 3 吉隆坡 ap-southeast-3 2 亚太东南 5 雅加达 ap-southeast-5 2 亚太南部 1 孟买 ap-south-1 2 亚太东北 1 东京 ap-northeast-1 1 美国西部 1 硅谷 us-west-1 2 美国东部 1 弗吉尼亚 us-east-1 2 欧洲中部 1 法兰克福 eu-central-1 2 英国(伦敦) 伦敦 eu-west-1 2 中东东部 1 迪拜 me-east-1 1 上面已经开通了ak、sk,现在使用阿里云自带的cloudshell调用terraform 自行为cloudshell绑定存储卷,方便销毁服务器。这个请自己搞定,点两下鼠标就行了。绑定后请关闭cloudshell,重新打开创建 main.tf 文件(配置清单)这边演示创建美国的服务器,最小的规格,按量付费(美国调用chatgpt、dockerhub无限制) // export tf_var_alicloud_access_key= // export tf_var_alicloud_secret_key= // 使用阿里云驱动 terraform { required_providers { alicloud = { source = "aliyun/alicloud" } } } // 声明变量 variable "alicloud_access_key" { type = string } variable "alicloud_secret_key" { type = string } // ak sk 可用区 provider "alicloud" { access_key = var.alicloud_access_key secret_key = var.alicloud_secret_key region = "us-east-1" // region区域 } // vpc专有网络,不收费 resource "alicloud_vpc" "vpc" { vpc_name = "your_name" cidr_block = "172.16.0.0/12" // 网段 } // switch交换机,虚拟资源,不收费 resource "alicloud_vswitch" "vsw" { vpc_id = alicloud_vpc.vpc.id // 绑定vpc cidr_block = "172.17.0.0/21" // 网段 zone_id = "us-east-a" // 可用区 } // security_group 安全组,不收费 resource "alicloud_security_group" "group" { name = "your_name" vpc_id = alicloud_vpc.vpc.id // 绑定vpc security_group_type = "normal" // 普通类型 } // security_group_rule 规则 resource "alicloud_security_group_rule" "allow_80_tcp" { type = "ingress" // 入流量 ip_protocol = "tcp" // tcp协议 nic_type = "intranet" // 不用管 policy = "accept" // 接受类型 port_range = "80/80" // 端口范围,你需要访问什么端口就开什么端口 priority = 1 // 优先级 security_group_id = alicloud_security_group.group.id // 绑定安全组 cidr_ip = "0.0.0.0/0" // 运行外部网络访问 } // security_group_rule 规则,同上 resource "alicloud_security_group_rule" "allow_22_tcp" { type = "ingress" ip_protocol = "tcp" nic_type = "intranet" policy = "accept" port_range = "22/22" priority = 1 security_group_id = alicloud_security_group.group.id cidr_ip = "0.0.0.0/0" } // ecs按量付费,这里使用最小的规格 resource "alicloud_instance" "myecs" { availability_zone = "us-east-a" // 可用区 security_groups = alicloud_security_group.group.*.id // 绑定安全组 instance_type = "ecs.xn4.small" // 服务器规格 system_disk_category = "cloud_efficiency" // 系统磁盘 system_disk_name = "your_name" // 磁盘显示名称 system_disk_description = "your_name" // 磁盘描述信息 image_id = "centos_7_9_x64_20g_alibase_20201228.vhd" // 操作系统镜像id,这里是centos7.9 instance_name = "your_name" // 服务器实例名字 vswitch_id = alicloud_vswitch.vsw.id // 绑定交换机 internet_max_bandwidth_out = 1 // 限制最大带宽1mb,这里会生成公网ip,以提供访问 internet_charge_type = "paybytraffic" // 重点---付费类型:按量付费 password = "root@123" // 生成服务器后,你的root密码 } 将ak和sk以环境变量方式输入到终端中 export tf_var_alicloud_access_key="你的ak" export tf_var_alicloud_secret_key="你的sk"















