全部產品
Search
文件中心

Cloud Shell:使用Terraform管理阿里雲資源

更新時間:Aug 08, 2024

雲命令列(Cloud Shell)中預裝了Terraform。Terraform是一種開源工具,用於安全高效地預配和管理雲基礎結構。您可以通過Terraform管理阿里雲資源。

啟動Cloud Shell

選擇一種方式啟動雲命令列:
  • 在控制台中運行

    單擊控制台首頁頭部導航的命令列按鈕,啟動雲命令列。

  • 獨立運行

    在瀏覽器中輸入https://shell.aliyun.com開啟雲命令列操作介面。

    您可以根據實際需要開啟多個命令列視窗,但最多可同時開啟5個雲命令列視窗。

在啟動雲命令時,請注意:
  • 第一次串連雲命令列時會為您建立虛擬機器,會消耗一些時間,最長不超過30秒。

  • 開啟多個雲命令列視窗時,所有視窗都會串連到同一台虛擬機器。虛擬機器數量不會因您開啟新的命令列視窗而增加。

管理雲資源

  1. 在Cloud Shell中編寫Terraform模板。

    您可以使用vim命令直接編寫模板。

    執行如下命令建立一個工程目錄及模板檔案:

    mkdir terraform-project
    cd terraform-project 
    touch main.tf

    以下程式碼範例是一個建立ECS執行個體的Terraform模板,請將內容粘貼到main.tf中。Cloud Shell 可自動擷取登入帳號的身份認證資訊,無需額外設定環境變數。

    provider "alicloud" {
      region = "cn-beijing"
    }
    
    data "alicloud_zones" "default" {
      available_disk_category     = "cloud_efficiency"
      available_resource_creation = "VSwitch"
    }
    
    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    = data.alicloud_zones.default.zones.0.id
    }
    
    resource "alicloud_security_group" "default" {
      name   = "default"
      vpc_id = alicloud_vpc.vpc.id
    }
    
    resource "alicloud_instance" "instance" {
      # cn-beijing
      availability_zone = data.alicloud_zones.default.zones.0.id
      security_groups   = alicloud_security_group.default.*.id
      # series III
      instance_type              = "ecs.n4.large"
      system_disk_category       = "cloud_efficiency"
      image_id                   = "ubuntu_18_04_64_20G_alibase_20190624.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"
    }
  2. 執行init命令初始化Terraform。

    terraform init
  3. 執行plan命令預覽配置。

    terraform plan
  4. 執行apply命令建立ECS執行個體。

    terraform apply

切換 Terraform 版本

Cloudshell 中預設的 Terraform 版本為 0.12.31,如果需要更高的版本可以通過tfenv來切換。

  1. 查看Cloud Shell中內建的Terraform版本。

tfenv list
  1. 切換到需要的Terraform版本。

tfenv use <terraform_version>

相關文檔