日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

在Windows中使用Terraform

更新時間:

本文為您介紹在Windows中,如何快速使用Terraform創建阿里云資源。

使用Terraform進行基礎設施即代碼(IaC)管理,包含以下幾個主要步驟。

  1. 安裝Terraform:確保您的系統能夠識別并執行Terraform命令。

  2. 編寫Terraform配置文件:配置文件是Terraform的核心,用于描述資源的創建、配置和依賴關系,如創建VPC、ECS、OSS等。

  3. 初始化與創建資源:將基礎設施設計變為現實的關鍵步驟。

  4. 查看和管理資源:在部署后,可以便捷地查看和管理基礎設施環境,確保其符合最新的需求和設計。

  5. 銷毀資源:當不再需要所創建的資源時,可以銷毀相應目錄下已創建資源。

1. 安裝Terraform

  1. 訪問Terraform官網,下載適合您的Windows操作系統版本的Terraform二進制文件并解壓。

    image

  2. 配置環境變量,將Terraform的安裝路徑添加到系統環境變量Path中。

    1. 在桌面右鍵單擊此電腦,選擇屬性 -> 高級系統設置 -> 環境變量 -> 系統變量/用戶變量。

    2. 在系統變量/用戶變量中單擊Path,選擇編輯 -> 新建,輸入文件所在目錄的路徑,單擊確定完成配置。

  3. 驗證安裝成功,同時按下Win+R鍵,輸入cmd單擊確定,打開命令提示符。執行terraform --version,如果出現以下信息則表示安裝成功。

    Terraform v1.9.3
    on windows_amd64
    

2. 編寫Terraform配置文件

配置文件是Terraform的核心,用于定義在云端或本地部署的基礎設施資源,如VPC、ECS、OSS等。

  1. 創建一個新的文件夾,例如命名為ecs,并在該文件夾下創建一個Terraform配置文件,例如配置文件名稱為main.tf

    為每個Terraform項目創建獨立執行目錄可以確保資源組織清晰,避免狀態文件混淆,便于版本控制和團隊協作,同時有利于實現環境隔離和模塊化管理,提高配置管理的可維護性和安全性。

  2. 編寫Terraform配置文件,以創建ECS為例。將 ECS 實例及其依賴的資源(VPC,安全組等)以代碼化的方式定義到配置文件中。為了方便起見,您可以將以下代碼復制到main.tf中。

    重要
    • 示例中創建的ECS為按量計費,資源創建后將會產生相關費用。

    • 示例中使用了環境變量作為Terraform認證方式,更多信息,請參見Terraform身份認證

    創建ECS所需要的資源如下:

    Resource

    說明

    alicloud_vpc

    創建VPC實例

    alicloud_vswitch

    創建vSwitch實例

    alicloud_security_group

    創建安全組實例

    alicloud_security_group_rule

    創建安全組的出入訪問規則

    alicloud_instance

    創建ECS實例

    variable "name" {
      type    = string
      default = "tf-test"
    }
    
    # 設置地域
    variable "region" {
      type    = string
      default = "cn-beijing"
    }
    
    # 公網帶寬,當大于0的時候,將為實例分配一個公網。
    variable "internet_max_bandwidth_out" {
      type    = number
      default = 10
    }
    
    # 設置ECS實例規格
    variable "instance_type" {
      type    = string
      default = "ecs.e-c1m1.large"
    }
    
    # 設置鏡像ID
    variable "image_id" {
      default = "ubuntu_18_04_64_20G_alibase_20190624.vhd"
    }
    
    # 設置標簽
    variable "tags" {
      type    = map(string)
      default = {
        From =  "Terraform"
        Usage =  "demo"
      }
    }
    
    provider "alicloud" {
      region = var.region
    }
    
    # 獲取zone_id
    data "alicloud_zones" "default" {
      available_instance_type = var.instance_type
      available_resource_creation = "VSwitch"
      available_disk_category = "cloud_ssd"
    }
    
    # 創建VPC
    resource "alicloud_vpc" "vpc" {
      vpc_name   = var.name
      cidr_block = "172.16.0.0/12"
    }
    
    # 創建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" {
      name   = var.name
      vpc_id = alicloud_vpc.vpc.id
    }
    
    # 向安全組添加入方向放行規則
    resource "alicloud_security_group_rule" "allow_tcp_22" {
      type              = "ingress"
      ip_protocol       = "tcp"
      nic_type          = "intranet"
      policy            = "accept"
      port_range        = "22/22"
      priority          = 1
      security_group_id = alicloud_security_group.default.id
      cidr_ip           = "0.0.0.0/0"
    }
    
    # 創建ECS
    resource "alicloud_instance" "instance" {
      availability_zone          = data.alicloud_zones.default.zones.0.id
      security_groups            = alicloud_security_group.default.*.id
      instance_type              = var.instance_type
      system_disk_category       = "cloud_essd_entry"
      image_id                   = var.image_id
      instance_name              = var.name
      vswitch_id                 = alicloud_vswitch.vsw.id
      internet_max_bandwidth_out = var.internet_max_bandwidth_out
      tags                       = var.tags
    }
    
    output "ecs_id" {
      value = alicloud_instance.instance.id
    }
    
    output "ecs_ip" {
      value = alicloud_instance.instance.public_ip
    }

3. 初始化與創建資源

Terraform配置文件編寫完成后,需要先初始化工作目錄,然后再創建資源。

3.1 Terraform初始化

cmd中切換到步驟2所創建的文件夾,然后執行terraform init命令進行初始化。terraform init命令是使用任何Terraform配置文件之前必須執行的第一個命令,主要目的是初始化一個Terraform工作目錄,包括下載必要的阿里云提供商插件以及各種其他記錄文件。

# 切換到D盤
d:
# 切換到步驟2中的文件夾路徑的命令,tool/terraform/projects/ecs是步驟2創建的文件夾路徑,您可根據實際路徑替換。
cd tool/terraform/projects/ecs
# 執行初始化命令
terraform init
說明

當您因網絡延遲等原因導致terraform init超時,無法正常下載Provider等情況時,可通過配置阿里云鏡像站解決,具體操作步驟,請參見Terraform Init 加速方案配置

3.2 創建資源

  1. 執行terraform plan創建一個執行計劃,并詳細展示了在執行 terraform apply 時將創建、修改或銷毀的所有資源信息。

    image

  2. 執行terraform apply時,將根據terraform plan生成的執行計劃來創建資源。在創建過程中,需要按照提示輸入yes,以繼續創建資源。關于變量如何傳值,請參見Variable 介紹中的變量設置方式。

    image

4. 查看和管理資源

在部署后,您也能輕松地管理和維護您的基礎設施環境,確保其符合最新的需求和設計。

4.1 查看資源

  • 通過terraform show命令查看資源的詳細信息。

    image

  • 通過terraform state list命令列出所有已創建的資源。

    image

  • 通過terraform state show <資源類型>.<資源名稱>查看某個資源的詳細信息。

    image

  • 通過阿里云控制臺查看已創建資源信息。

4.2 管理資源

Terraform在完成資源的創建和修改后,會將資源的狀態和屬性信息保存在terraform.tfstate文件中。我們可以使用terraform state相關命令對state進行管理。更多信息,請參見Terraform State 介紹

4.3 資源變更

  1. 修改配置文件(如main.tf或者其他.tf文件)中需要變更的資源定義,例如您想添加新的安全組入方向放行規則。

    resource "alicloud_security_group_rule" "allow_tcp_443" {
      type              = "ingress"
      ip_protocol       = "tcp"
      nic_type          = "intranet"
      policy            = "accept"
      port_range        = "443/443"
      priority          = 1
      security_group_id = alicloud_security_group.default.id
      cidr_ip           = "0.0.0.0/0"
    }
  2. 執行terraform plan命令預覽所做的變更。

    image

  3. 如果變更符合預期,執行terraform apply命令,來應用這些變更到您的基礎設施。執行此命令時,Terraform會要求您確認是否確實要進行這些變更。輸入 yes 并回車后,變更會被應用。

    image

5. 資源銷毀

當不再需要所創建的資源時,可以通過terraform destroy命令銷毀所有已創建的資源。

image

相關文檔