使用terraform创建一个ECS
#vi terraform.tf
#定义云厂商
provider "alicloud" {
  region = "cn-shanghai"
  access_key = "xxxx"
  secret_key = "xxxx"
}
#创建VPC
resource "alicloud_vpc" "vpc" {
  vpc_name = "shanghai_vpc1"
  cidr_block = "10.0.0.0/8"
  description = "shanghai dev vpc"
}
#创建交换机
resource "alicloud_vswitch" "vswitch" {
  vpc_id            = alicloud_vpc.vpc.id
  vswitch_name = "shanghai_dev_vsw"
  cidr_block        = "10.0.0.0/24"
  zone_id = "cn-shanghai-b"
  depends_on = [alicloud_vpc.vpc]
}
#创建安全组
resource "alicloud_security_group" "dev_default" {
  security_group_name   = "shanghai_dev_group"
  vpc_id = alicloud_vpc.vpc.id
}
#创建安全组规则
resource "alicloud_security_group_rule" "allow_all_tcp" {
  type              = "ingress"
  ip_protocol       = "tcp"
  nic_type          = "intranet"
  policy            = "accept"
  port_range        = "1/65535"
  priority          = 1
  security_group_id = alicloud_security_group.dev_default.id
  cidr_ip           = "0.0.0.0/0"
}
#创建ECS
data "alicloud_images" "default" {
  name_regex = "^centos_7"
  owners = "system"
}
resource "alicloud_instance" "instance" {
  # 可用区
  availability_zone = "cn-shanghai-b"
  # 绑定安全组
  security_groups = [alicloud_security_group.dev_default.id]
  # 实例规格
  instance_type = "ecs.e-c1m1.large"
  #磁盘类型
  system_disk_category       = "cloud_essd_entry"
  # 系统镜像
  image_id = data.alicloud_images.default.ids[0]
  # 实例名称
  instance_name = "test_foo"
  # 所在交换机
  vswitch_id = alicloud_vswitch.vswitch.id
  # 公网带宽
  internet_max_bandwidth_out = 0
  #按量付费
  instance_charge_type = "PostPaid"
}
#首次运行文件需要执行,后续就不需要了
terraform init
#运行计划命令,查看配置是否正确
terraform plan
#执行操作
terraform apply