阿里云:

# Configure the AliCloud Provider

provider "alicloud" {
  access_key = ""
  secret_key = ""
  # If not set, cn-beijing will be used.
  region = "cn-hangzhou"
}

variable "name" {
  default = "terraform-example"
}

data "alicloud_zones" "default" {
  available_disk_category     = "cloud_efficiency"
  available_resource_creation = "VSwitch"
}

# Create a new ECS instance for VPC
resource "alicloud_vpc" "vpc" {
  vpc_name   = var.name
  cidr_block = "172.16.0.0/16"
}

resource "alicloud_vswitch" "vswitch" {
  vpc_id       = alicloud_vpc.vpc.id
  cidr_block   = "172.16.0.0/24"
  zone_id      = data.alicloud_zones.default.zones.0.id
  vswitch_name = var.name
}

# Create a new Security in a VPC
resource "alicloud_security_group" "group" {
  security_group_name   = var.name
  description           = "foo"
  vpc_id                = alicloud_vpc.vpc.id
}


resource "alicloud_instance" "instance" {
  # cn-beijing
  availability_zone = data.alicloud_zones.default.zones.0.id
  security_groups   = alicloud_security_group.group.*.id

  # series III
  #instance_type              = "ecs.c9i.large"
  instance_type              = "ecs.e-c1m1.large"
  system_disk_category       = "cloud_essd"
  system_disk_name           = var.name
  system_disk_description    = "system_disk_description"
  system_disk_size           = 20
  image_id                   = "ubuntu_24_04_x64_20G_alibase_20251102.vhd"
  instance_name              = var.name
  vswitch_id                 = alicloud_vswitch.vswitch.id
  internet_max_bandwidth_out = 10
}

命令:

terraform init
terraform plan
terraform apply -auto-approve
terraform destroy
terraform fmt

文档:

registry.terraform.io/providers/aliyun/alicloud/latest/docs
bilibili.com/video/BV1xAbKz2EKy/?vd_source=150f64b01756476b9aa9c735349353f0