本文介紹如何使用Terraform建立一台ECS執行個體。
操作步骤
- 建立VPC網路和交換器。
- 建立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"
}
- 運行
terraform apply
開始建立。
- 運行
terraform show
查看已建立的VPC和VSwitch。
您也可以登入VPC控制台查看VPC和VSwitch的屬性。
- 建立安全性群組,並將安全性群組作用於上一步建立的VPC中。
- 在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"
}
- 運行
terraform apply
開始建立。
- 運行
terraform show
查看已建立的安全性群組和安全性群組規則。
您也可以登入ECS控制台查看安全性群組和安全性群組規則。
- 建立ECS執行個體。
- 在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
開始建立。
- 運行
terraform show
查看已建立的ECS執行個體。
- 運行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"
}