Terraform是一個開源的基礎設施即代碼工具,允許開發人員通過聲明式的語言來定義和管理基礎設施的配置,提供了一種簡潔的方式來建立、修改或刪除ECS資源,減少手動操作的繁瑣和錯誤,提高基礎設施的可管理性和可維護性。本文為您介紹如何安裝與配置Terraform、使用Terraform建立ECS執行個體。
更多Terraform資訊,請參見什麼是Terraform。
支援的資源清單
Resource:資源,指新建立的資源,用於定義基礎設施組件,例如一個ECS執行個體、一個虛擬機器、一個網路安全性群組等。
Data Source:資料來源,用於查詢和擷取已有的基礎設施組件的資訊,在Terraform配置中使用這些資訊來引用或配置其他資源。
安裝Terraform並配置許可權
在本地安裝和配置Terraform
在本地使用Terraform,需要安裝並預配置Terraform。具體操作,請參見在本地安裝和配置Terraform。
由於阿里雲帳號(主帳號)擁有資源的所有許可權,其AccessKey一旦泄露風險巨大,所以建議您使用滿足最小化許可權需求的RAM使用者的AccessKey。具體操作方式請參見建立AccessKey。
建立環境變數,用於存放身份認證資訊。
在AccessKey管理頁面上建立和查看您的AccessKey。
若無對應環境變數,在執行terraform模板時無法確認身份資訊,將會導致調用失敗。
使用線上服務(免安裝和許可權配置)
如果您不想安裝Terraform,直接使用線上服務Cloud Shell。
阿里雲Cloud Shell是一款協助您營運的免費產品,預裝了Terraform的組件,並配置好身份憑證(Credentials)。因此您可直接在Cloud Shell中運行Terraform的命令。更多資訊,請參見在Cloud Shell中使用Terraform。
通過Cloud Shell使用Terraform時,由於其銷毀特性會導致資料丟失,因此建議您使用Cloud Shell做簡單、快速的操作,例如調試。更多使用限制,請參見使用限制。
使用Terraform建立並管理ECS
下文以建立ECS為例,介紹如何使用Terraform建立並管理ECS資源。
完整代碼
您也可以在OpenAPI 門戶調試運行代碼。一鍵運行
resource "alicloud_vpc" "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"
zone_id = "cn-beijing-f"
}
resource "alicloud_security_group" "default" {
name = "default"
vpc_id = alicloud_vpc.vpc.id
}
resource "alicloud_security_group_rule" "allow_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 = "192.168.0.0/16"
}
resource "alicloud_instance" "instance" {
# cn-beijing
availability_zone = "cn-beijing-f"
security_groups = alicloud_security_group.default.*.id
# series III
instance_type = "ecs.e-c1m1.large"
system_disk_category = "cloud_essd"
image_id = "aliyun_2_1903_x64_20G_alibase_20240628.vhd"
instance_name = "test_foo"
vswitch_id = alicloud_vswitch.vsw.id
internet_max_bandwidth_out = 10
password = "Terraform@Example"
}
output "public_ip" {
value = alicloud_instance.instance.public_ip
}
相關文檔
更多實踐教程,請參見Terraform的教程。
更多Terraform的常用命令,請參見Terraform常用命令。
更多建立ECS執行個體的方式,請參見ECS執行個體交付(建立)方式。
ROS提供了Terraform託管服務,因此您可以直接在ROS控制台部署Terraform模板。詳細操作,請參見建立Terraform類型資源棧。