本文介紹如何使用Terraform建立一台ECS執行個體。

操作步骤

  1. 建立VPC網路和交換器。
    1. 建立terraform.tf檔案,輸入以下內容,並儲存在當前的執行目錄中。
      resource "alicloud_vpc" "vpc" {
        name       = "tf_test_foo"
        cidr_block = "172.16.0.0/12"
      }
      
      resource "alicloud_vswitch" "vsw" {
        vpc_id            = "${alicloud_vpc.vpc.id}"
        cidr_block        = "172.16.0.0/21"
        availability_zone = "cn-beijing-b"
      }
    2. 運行terraform apply開始建立。
    3. 運行terraform show查看已建立的VPC和VSwitch。

      您也可以登入VPC控制台查看VPC和VSwitch的屬性。

  2. 建立安全性群組,並將安全性群組作用於上一步建立的VPC中。
    1. terraform.tf檔案中增加以下內容。
      resource "alicloud_security_group" "default" {
        name = "default"
        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.default.id}"
        cidr_ip           = "0.0.0.0/0"
      }
    2. 運行terraform apply開始建立。
    3. 運行terraform show查看已建立的安全性群組和安全性群組規則。

      您也可以登入ECS控制台查看安全性群組和安全性群組規則。

  3. 建立ECS執行個體。
    1. terraform.tf檔案中增加以下內容。
      resource "alicloud_instance" "instance" {
        # cn-beijing
        availability_zone = "cn-beijing-b"
        security_groups = ["${alicloud_security_group.default.*.id}"]
      
        # series III
        instance_type        = "ecs.n2.small"
        system_disk_category = "cloud_efficiency"
        image_id             = "ubuntu_140405_64_40G_cloudinit_20161115.vhd"
        instance_name        = "test_foo"
        vswitch_id = "${alicloud_vswitch.vsw.id}"
        internet_max_bandwidth_out = 10
        password = "<replace_with_your_password>"
      }
      说明
      • 在上述樣本中,指定了internet_max_bandwidth_out = 10,因此會自動為執行個體分配一個公網IP。
      • 詳細的參數解釋請參見 阿里雲參數說明
      運行terraform apply開始建立。
    2. 運行terraform show查看已建立的ECS執行個體。
    3. 運行ssh root@<publicip>,並輸入密碼來訪問ECS執行個體。

操作样例

provider "alicloud" {}

resource "alicloud_vpc" "vpc" {
  name       = "tf_test_foo"
  cidr_block = "172.16.0.0/12"
}

resource "alicloud_vswitch" "vsw" {
  vpc_id            = "${alicloud_vpc.vpc.id}"
  cidr_block        = "172.16.0.0/21"
  availability_zone = "cn-beijing-b"
}


resource "alicloud_security_group" "default" {
  name = "default"
  vpc_id = "${alicloud_vpc.vpc.id}"
}


resource "alicloud_instance" "instance" {
  # cn-beijing
  availability_zone = "cn-beijing-b"
  security_groups = ["${alicloud_security_group.default.*.id}"]

  # series III
  instance_type        = "ecs.n2.small"
  system_disk_category = "cloud_efficiency"
  image_id             = "ubuntu_140405_64_40G_cloudinit_20161115.vhd"
  instance_name        = "test_foo"
  vswitch_id = "${alicloud_vswitch.vsw.id}"
  internet_max_bandwidth_out = 10
}


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.default.id}"
  cidr_ip           = "0.0.0.0/0"
}