全部產品
Search
文件中心

Terraform:使用Terraform快速建立資源

更新時間:Feb 26, 2026

Terraform 是一款開源的基礎設施即代碼(IaC)工具,支援通過聲明式設定檔管理阿里雲資源的完整生命週期。本文介紹如何通過可視化介面或命令列兩種方式快速上手 Terraform,完成第一個阿里雲資源的建立。

選擇使用方式

Terraform 提供可視化和命令列兩種使用方式,根據實際需求選擇:

方式

適用情境

優勢

限制

Terraform Explorer

不熟悉參數、首次使用、快速調試

圖形化表單配置,無需編寫代碼

僅支援單資源操作

Terraform CLI

快速體驗、生產環境、複雜編排

支援多Resource Orchestration Service和狀態管理

依賴 CLI 環境

選擇 CLI 方式時,可通過Cloud Shell本地安裝準備環境。

使用Terraform Explorer

Terraform Explorer 是阿里雲基於 Terraform 提供的線上調試工具,支援通過表單自動產生 Terraform 設定檔並線上執行。更多資訊,請參見 Explorer 介紹

以下以建立一個Virtual Private Cloud 為例,介紹 Terraform Explorer 的兩種使用方式:自訂參數和樣本模板。

自訂參數建立資源

如需根據實際需求配置參數,按以下步驟操作:

  1. 登入Terraform Explorer,選擇產品資源類型,參照資來源文件填寫參數,單擊發起調試

    建立 VPC 的主要參數如下。更多參數資訊,請參見 alicloud_vpc

    參數名稱

    參數描述

    樣本值

    vpc_name

    VPC 名稱

    tf-test-vpc

    cidr_block

    VPC 私網網段

    192.168.0.0/16

    description

    VPC 描述資訊

    The VPC was created using Terraform.

    image

  2. 模板詳情頁簽確認參數無誤後,單擊預覽查看執行計畫。

    image

  3. 預覽詳情頁簽確認待建立資源的資訊,單擊執行

    image

  4. 執行詳情頁簽查看結果。執行成功會提示 "Apply complete! Resources: 1 added, 0 changed, 0 destroyed."。執行失敗時,請根據提示修改參數後重新調試。

    image

  5. 資源詳情頁簽查看已建立的資源資訊。

    image

  6. (可選)修改資源:調整參數後單擊預覽並執行,重複步驟 2~4。更新成功會提示 "Apply complete! Resources: 0 added, 1 changed, 0 destroyed."。

    image

  7. (可選)釋放資源:在執行詳情頁簽單擊銷毀資源,然後在預覽詳情頁簽單擊執行

    image

使用樣本模板建立資源

如果對資源參數不熟悉或僅希望快速體驗,可直接使用 Terraform Explorer 提供的樣本模板。

  1. 登入Terraform Explorer,選擇相應的產品資源類型樣本模板,單擊發起調試。在右側的樣本模板頁簽可查看模板詳情。

    image

  2. 模板詳情頁簽單擊預覽並執行

    image

  3. 執行詳情頁簽,您可以查看執行結果。

    image

  4. (可選)若您希望釋放已建立的資源,在執行詳情頁簽單擊銷毀資源,然後在預覽詳情頁簽單擊執行

    image

說明

也可以在調用歷史中進行繼續調試銷毀資源等操作。

使用Terraform CLI

通過命令列使用 Terraform,需要先準備 CLI 環境,然後編寫設定檔並執行命令建立資源。根據實際情況選擇以下任一方式準備 Terraform CLI 環境:

  • Cloud Shell(推薦):免安裝,適合快速體驗和學習測試。

  • 本地安裝:適合生產環境、持續整合和長期使用。

Cloud Shell

阿里雲 Cloud Shell 是一款免費的營運工具,已預裝 Terraform 並配置好身份憑證,可直接運行 Terraform 命令。

登入Cloud Shell

開啟瀏覽器,訪問 Cloud Shell。更多資訊,請參見使用雲命令列

說明

建議使用 RAM 使用者登入。為確保阿里雲帳號安全,非必要時避免使用阿里雲帳號直接存取雲資源。

切換 Terraform 版本

Cloud Shell 預設的 Terraform 版本可能較低,建議切換到 1.2 及以上版本以確保功能完整可用。

  1. 查看當前Terraform版本:

    terraform version

    image

  2. 查看 Cloud Shell 中內建的可用版本列表:

    tfenv list

    image

  3. 切換到指定版本(以 1.9.5 為例):

    tfenv use 1.9.5

    image

本地安裝

適用於生產環境和複雜編排情境,需要先安裝 Terraform 並配置身份憑證。

通過包管理器安裝(推薦)

macOS

使用Homebrew安裝:

#安裝HashiCorp的tap,用來定義包在homebrew的位置
brew tap hashicorp/tap
#執行安裝指令,安裝Terraform
brew install hashicorp/tap/terraform

更新到最新版本:

#更新Homebrew
brew update
#更新terraform
brew upgrade hashicorp/tap/terraform

Windows

使用Chocolatey安裝:

choco install terraform

Linux

yum 包管理器為例:

yum install -y dnf-plugin-releasever-adapter
yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
yum install terraform

手動安裝

如果包管理器不可用,可選擇以下方式手動安裝。

使用先行編譯包

  1. 從 Terraform 官網下載對應作業系統的 zip 包並解壓。

  2. 將 terraform 二進位檔案移動到系統 PATH 目錄中:

    • macOS 或 Linux

      mv ~/Downloads/terraform /usr/local/bin/
    • Windows

      1. 進入控制台 > 系統 > 系統設定 > 環境變數。

      2. 在系統變數中找到 PATH,單擊編輯。

      3. 添加 Terraform 所在目錄路徑,確保與前一條目之間用分號分隔(如 c:\path;c:\path2)。

      4. 啟動新的命令列視窗以使配置生效。

從源碼編譯

需要預先安裝 Go 語言環境

  1. 複製 Terraform 源碼倉庫:

    git clone https://github.com/hashicorp/terraform.git
  2. 進入目錄並編譯安裝:

    cd terraform
    go install

    編譯完成後,二進位檔案會放置在 $GOPATH/bin/ 目錄中。

  3. 確保 $GOPATH/bin 已添加到系統 PATH 中。配置方式與使用先行編譯包中的步驟 2 相同。

驗證安裝

運行以下命令確認 Terraform 已正確安裝:

terraform version

命令成功執行並顯示版本號碼,表示安裝完成。

案例:建立 ECS 執行個體

以下以建立一台 ECS 執行個體為例,示範 Terraform Resource Orchestration Service的完整流程:建立 VPC → 建立交換器 → 建立安全性群組 → 建立 ECS 執行個體。

  1. 建立工作目錄並編寫 Terraform 設定檔 main.tf

    mkdir tf-demo && cd tf-demo
    vim main.tf

    將以下代碼複製到 main.tf

    provider "alicloud" {
      region = var.region
    }
    
    # 資源建立的地區
    variable "region" {
      default = "cn-beijing"
    }
    
    # ECS執行個體名稱
    variable "instance_name" {
      default = "tf-cloudshell-test"
    }
    
    # ECS執行個體規格
    variable "instance_type" {
      default = "ecs.n2.small"
    }
    
    # 公網出頻寬,值為0時,表示不開通公網
    variable "internet_bandwidth" {
      default = 10
    }
    
    # ECS系統鏡像
    variable "image_id" {
      default = "ubuntu_18_04_64_20G_alibase_20190624.vhd"
    }
    
    # ECS系統硬碟類型
    variable "disk_category" {
      default = "cloud_efficiency"
    }
    # ECS執行個體登入密碼
    variable "password" {
      default = "TF-test@1234"
    }
    
    # 建立VPC
    resource "alicloud_vpc" "vpc" {
      vpc_name   = "tf_test_foo"
      cidr_block = "172.16.0.0/12"
    }
    
    # 根據執行個體規格和雲端硬碟類型查詢存在資源的可用性區域
    data "alicloud_zones" "default" {
      available_disk_category     = var.disk_category
      available_resource_creation = "VSwitch"
      available_instance_type     = var.instance_type
    }
    
    # 建立vSwitch
    resource "alicloud_vswitch" "vsw" {
      vpc_id     = alicloud_vpc.vpc.id
      cidr_block = "172.16.0.0/21"
      zone_id    = data.alicloud_zones.default.zones.0.id
    }
    
    # 建立安全性群組
    resource "alicloud_security_group" "default" {
      security_group_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"
    }
    
    resource "alicloud_instance" "instance" {
      # 綁定安全性群組
      security_groups = alicloud_security_group.default.*.id
      instance_type = var.instance_type
      system_disk_category = var.disk_category
      image_id = var.image_id
      instance_name = var.instance_name
      # 所在交換器
      vswitch_id = alicloud_vswitch.vsw.id
      internet_max_bandwidth_out = var.internet_bandwidth
      password  = var.password
    }
    重要

    樣本中的安全性群組規則開放了所有 TCP 通訊埠(1-65535)且來源 IP 為 0.0.0.0/0,僅適用於測試環境。生產環境請根據實際需求限制連接埠範圍和來源 IP。

  2. 初始化 Terraform 工作目錄:

    terraform init
  3. 預覽執行計畫,確認將要建立的資源:

    terraform plan

    image

  4. 建立資源。輸出 Apply complete! 表示建立成功:

    terraform apply

    image.png

  5. 不再需要這些資源時,執行以下命令釋放:

    terraform destroy

相關文檔