Tüm Ürünler
Search
Belge Merkezi

Terraform:Create resources with Terraform

Son Güncelleme:Oct 06, 2026

Terraform, bildirim temelli yapılandırma dosyaları aracılığıyla Alibaba Cloud kaynaklarının tam yaşam döngüsünü yöneten açık kaynaklı bir altyapı kod olarak (IaC) aracıdır. İlk Alibaba Cloud kaynağınızı oluşturmak için görsel bir arayüzü veya komut satırını kullanın.

Yöntem seçin

Terraform iki yöntem sunar: görsel ve komut satırı. İhtiyaçlarınıza uygun olanı seçin.


Yöntem


Senaryolar


Avantajlar


Sınırlamalar


Terraform Explorer


İlk kez kullanım, parametrelere aşina olmama, hızlı hata ayıklama


Kaynakları grafiksel bir form kullanarak yapılandırın. Kodlama gerekmez.


Yalnızca tek kaynaklı işlemleri destekler.


Terraform CLI


Hızlı değerlendirme, üretim ortamları, karmaşık orkestrasyon


Çoklu kaynak orkestrasyonunu ve durum yönetimini destekler.


Bir CLI ortamı gerektirir.

CLI yöntemini seçerseniz, Cloud Shell veya yerel kurulum kullanarak ortamınızı hazırlayın.

Terraform Explorer'ı kullanın

Terraform Explorer, formlardan Terraform yapılandırma dosyaları oluşturan ve bunları bulutta çalıştıran Alibaba Cloud'un çevrimiçi hata ayıklama aracıdır. Daha fazla bilgi için bkz. Explorer'a genel bakış.

Aşağıdaki örnek, Terraform Explorer'ı kullanmanın iki yolunu (özel parametreler ve örnek şablonlar) göstermek amacıyla bir Virtual Private Cloud (VPC) oluşturur.

Özel parametreler kullanarak kaynak oluşturun

Parametreleri ihtiyaçlarınıza göre yapılandırmak için şu adımları izleyin:

  1. Terraform Explorer adresine gidin. Bir Product ve bir Resource Type seçin. Resource Documentation bölümünü kullanarak parametreleri doldurun ve ardından Initiate öğesine tıklayın.

    Bir VPC oluşturmak için ana parametreler aşağıda listelenmiştir. Daha fazla parametre ayrıntısı için bkz. alicloud_vpc.


    Parameter Name


    Description


    Example value


    vpc_name


    VPC adı


    tf-test-vpc


    cidr_block


    VPC için özel CIDR bloğu


    192.168.0.0/16


    description


    VPC açıklaması


    The VPC was created using Terraform.

  2. Template Details sekmesinde parametrelerin doğru olduğunu onaylayın ve yürütme planını görüntülemek için Plan öğesine tıklayın.

    terraform {
      required_providers {
        alicloud = {
          source = "aliyun/alicloud"
          version = "1.231.0"
        }
      }
    }
    provider "alicloud" {
      region  = "cn-beijing"
    }
    resource "alicloud_vpc" "default" {
      cidr_block  = "192.168.0.0/16"
      description = "The VPC was created using Terraform."
      vpc_name    = "tf-test-vpc"
    }
  3. Details sekmesinde oluşturulacak kaynaklarla ilgili bilgileri gözden geçirin ve ardından Execute öğesine tıklayın.

    Önizleme sonucu Success durumunu ve Plan: 1 to add, 0 to change, 0 to destroy mesajını gösterir; bu, alicloud_vpc.default kaynağının oluşturulacağını belirtir. cidr_block değeri 192.168.0.0/16 ve description değeri The VPC was created using Terraform. şeklindedir. Terraform, diğer nitelikleri yürütmeden sonra oluşturur.

  4. Execution Details sekmesinde sonucu görüntüleyin. Başarılı bir yürütme "Apply complete! Resources: 1 added, 0 changed, 0 destroyed." mesajını gösterir. Yürütme başarısız olursa, hata mesajına göre parametreleri değiştirin ve tekrar deneyin.

  5. Resource Details sekmesinde oluşturulan kaynakla ilgili bilgileri görüntüleyin.

    Kaynak adresi alicloud_vpc.default şeklindedir. Sayfa, VPC'nin aşağıdakiler dahil çeşitli niteliklerini gösterir:

    • cidr_block: 192.168.0.0/16

    • name: tf-test-vpc

    • description: The VPC was created using Terraform.

    • create_time: VPC'nin oluşturulduğu zaman.

    • classic_link_enabled ve enable_ipv6 gibi ağ yapılandırmaları.

    • resource_group_id, route_table_id ve router_id gibi ilişkili kaynak bilgileri.

  6. (İsteğe bağlı) Kaynağı değiştirin: Parametreleri ayarlayın ve Plan & Apply öğesine tıklayın, ardından 2. ila 4. adımları tekrarlayın. Başarılı bir güncelleme "Apply complete! Resources: 0 added, 1 changed, 0 destroyed." mesajını gösterir.

  7. (İsteğe bağlı) Kaynağı yok edin: Execution Details sekmesinde Destroy Resources öğesine tıklayın. Ardından, Details sekmesinde Execute öğesine tıklayın.

    İşlem tamamlandığında, Execution Details sekmesi Apply complete! Resources: 0 added, 0 changed, 1 destroyed mesajıyla birlikte bir Success durumu gösterir; bu, VPC kaynağının yok edildiğini onaylar.

Örnek şablon kullanarak kaynak oluşturun

Kaynak parametrelerine aşina değilseniz veya hızlıca başlamak istiyorsanız, Terraform Explorer'dan bir örnek şablon kullanın.

  1. Terraform Explorer adresine gidin. İlgili Product, Resource Type ve Sample Template öğelerini seçin ve ardından Initiate öğesine tıklayın. Sağ taraftaki Sample Template sekmesinde şablon ayrıntılarını görüntüleyebilirsiniz.

    Soldaki Input Parameters alanında, şablonun gerektirdiği parametreleri görüntüleyebilir ve değiştirebilirsiniz. Örneğin, name parametresini terraform-example olarak ayarlayabilirsiniz. Daha fazla parametre eklemek için Add Parameter öğesine de tıklayabilirsiniz.

  2. Template Details sekmesinde Plan & Apply öğesine tıklayın.

    Bu örnek şablon Terraform formatındadır. ipv6_isp değerini BGP olarak, cidr_block değerini 10.0.0.0/8 olarak ve enable_ipv6 değerini true olarak ayarlayan bir alicloud_vpc kaynağı tanımlar.

  3. Execution Details sekmesinde yürütme sonucunu görüntüleyebilirsiniz.

  4. (İsteğe bağlı) Oluşturulan kaynağı yok etmek için Execution Details sekmesindeki Destroy Resources öğesine tıklayın. Ardından, Details sekmesinde Execute öğesine tıklayın.

Not

Call History bölümünden Continue ve Destroy Resources gibi işlemleri de yapabilirsiniz.

Terraform CLI'yı kullanın

Terraform'u komut satırından kullanmak için bir CLI ortamı hazırlayın, bir yapılandırma dosyası yazın ve kaynakları oluşturmak için komutları çalıştırın. Ortamınızı kurmak için aşağıdaki yöntemlerden birini seçin:

  • Cloud Shell (önerilen): Kurulum gerekmez. Hızlı değerlendirme ve öğrenme için idealdir.

  • Yerel kurulum: Üretim ortamları, sürekli entegrasyon ve uzun vadeli kullanım için en iyisidir.

Cloud Shell

Alibaba Cloud Cloud Shell, Terraform önceden yüklenmiş ve kimlik kimlik bilgileri önceden yapılandırılmış ücretsiz bir işlem aracıdır; böylece Terraform komutlarını hemen çalıştırabilirsiniz.

Cloud Shell'e giriş yapın

Tarayıcınızı açın ve Cloud Shell adresine gidin. Daha fazla bilgi için bkz. Cloud Shell'i kullanma.

Not

Bir RAM kullanıcısı olarak giriş yapın. Alibaba Cloud hesabınızı korumak için gerekli olmadıkça bulut kaynaklarına erişmek için bu hesabı kullanmaktan kaçının.

Terraform sürümlerini değiştirin

Cloud Shell'deki varsayılan Terraform sürümü eski olabilir. Tüm özelliklerin doğru çalışmasını sağlamak için sürüm 1,2 veya daha yenisine geçiş yapın.

  1. Geçerli Terraform sürümünüzü kontrol edin:

    terraform version
    shell@Alicloud:~$ terraform version
    Terraform v0.12.31
    Your version of Terraform is out of date! The latest version
    is 1.12.2. You can update by downloading from https://www.terraform.io/downloads.html
  2. Cloud Shell'de kullanılabilir Terraform sürümlerini listeleyin:

    tfenv list
    shell@Alicloud:~$ tfenv list
      1.9.5
      1.5.7
      1.3.7
      0.13.7
    * 0.12.31 (set by /usr/local/tfenv/version)
  3. Belirli bir sürüme geçiş yapın (örneğin, 1.9.5):

    tfenv use 1.9.5
    shell@Alicloud:~$ tfenv use 1.9.5
    Switching default version to v1.9.5
    Switching completed

Yerel kurulum

Üretim ortamları ve karmaşık orkestrasyon için en iyisidir. Önce Terraform'u yükleyin ve kimlik kimlik bilgilerini yapılandırın.

Paket yöneticisi kullanarak yükleme (önerilen)

macOS

Homebrew kullanarak yükleyin:

# Add HashiCorp's tap to define where packages are located in Homebrew
brew tap hashicorp/tap
# Install Terraform
brew install hashicorp/tap/terraform

En son sürüme güncelleyin:

# Update Homebrew
brew update
# Upgrade Terraform
brew upgrade hashicorp/tap/terraform

Windows

Chocolatey kullanarak yükleyin:

choco install terraform

Linux

Örneğin, yum paket yöneticisini kullanarak:

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

Manuel kurulum

Bir paket yöneticisi yoksa Terraform'u manuel olarak yükleyin.

Önceden derlenmiş ikili dosya kullanma

  1. Terraform web sitesinden işletim sisteminiz için ZIP dosyasını indirin. Arşivi çıkarın.

  2. terraform ikili dosyasını sistem PATH değişkeninizdeki bir dizine taşıyın:

    • macOS veya Linux

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

      1. Denetim Masası > Sistem > Sistem Ayarları > Ortam Değişkenleri yolunu izleyin.

      2. Sistem Değişkenleri bölümünde PATH öğesini bulun ve Düzenle'ye tıklayın.

      3. Terraform dizininizin yolunu ekleyin. Diğer girdilerden noktalı virgülle ayırın (örneğin, c:\path;c:\path2).

      4. Değişikliğin etkili olması için yeni bir komut satırı penceresi açın.

Kaynak koddan derleme

Önce Go geliştirme ortamını yüklemeniz gerekir.

  1. Terraform kaynak deposunu klonlayın:

    git clone https://github.com/hashicorp/terraform.git
  2. Dizine gidin ve ardından yazılımı derleyip yükleyin.

    cd terraform
    go install

    Derlemeden sonra ikili dosya $GOPATH/bin/ dizinine yerleştirilir.

  3. $GOPATH/bin dizininin sistem PATH değişkeninize eklendiğinden emin olun. Önceden derlenmiş ikili dosya kullanma bölümündeki 2. adımdaki aynı adımları kullanın.

Kurulumu doğrulayın

Terraform'un doğru yüklendiğini doğrulamak için aşağıdaki komutu çalıştırın:

terraform version

Sürüm numarası görüntüleniyorsa kurulum tamamlanmıştır.

Örnek: Bir ECS örneği oluşturun

Bu örnek, bir ECS örneği oluşturarak tam Terraform iş akışını adım adım açıklar: VPC → vSwitch → güvenlik grubu → ECS örneği.

  1. Bir çalışma dizini oluşturun ve Terraform yapılandırma dosyası main.tf dosyasını yazın:

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

    Aşağıdaki kodu main.tf dosyasına kopyalayın:

    provider "alicloud" {
      region = var.region
    }
    # Region for resource creation
    variable "region" {
      default = "cn-beijing"
    }
    # ECS instance name
    variable "instance_name" {
      default = "tf-cloudshell-test"
    }
    # ECS instance type
    variable "instance_type" {
      default = "ecs.n2.small"
    }
    # Outbound public bandwidth. A value of 0 means no public network access.
    variable "internet_bandwidth" {
      default = 10
    }
    # ECS OS image
    variable "image_id" {
      default = "ubuntu_18_04_64_20G_alibase_20190624.vhd"
    }
    # ECS system disk type
    variable "disk_category" {
      default = "cloud_efficiency"
    }
    # ECS instance logon password
    variable "password" {
      default = "TF-test@1234"
    }
    # Create a VPC
    resource "alicloud_vpc" "vpc" {
      vpc_name   = "tf_test_foo"
      cidr_block = "172.16.0.0/12"
    }
    # Query for availability zones based on the instance type and disk category
    data "alicloud_zones" "default" {
      available_disk_category     = var.disk_category
      available_resource_creation = "VSwitch"
      available_instance_type     = var.instance_type
    }
    # Create a 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
    }
    # Create a security group
    resource "alicloud_security_group" "default" {
      security_group_name   = "default"
      vpc_id = alicloud_vpc.vpc.id
    }
    # Create an inbound security group rule
    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" {
      # Attach the security group
      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
      # Specify the vSwitch
      vswitch_id = alicloud_vswitch.vsw.id
      internet_max_bandwidth_out = var.internet_bandwidth
      password  = var.password
    }
    Önemli

    Bu örnekteki güvenlik grubu kuralı tüm TCP bağlantı noktalarını (1-65535) açar ve herhangi bir IP adresinden (0.0.0.0/0) gelen trafiğe izin verir. Bu yapılandırmayı yalnızca test ortamlarında kullanın. Üretimde, bağlantı noktalarını ve kaynak IP adreslerini gerektiği gibi kısıtlayın.

  2. Terraform çalışma dizinini başlatın:

    terraform init
  3. Hangi kaynakların oluşturulacağını onaylamak için yürütme planını önizleyin:

    terraform plan
    shell@Alicloud:~/tf-demo$ terraform plan
    data.alicloud_zones.default: Reading...
    data.alicloud_zones.default: Read complete after 1s [id=1373912221]
    Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
      + create
    Terraform will perform the following actions:
      # alicloud_instance.instance will be created
      + resource "alicloud_instance" "instance" {
          + availability_zone                  = (known after apply)
          + cpu                                = (known after apply)
          + create_time                        = (known after apply)
          + credit_specification               = (known after apply)
          + deployment_set_group_no            = (known after apply)
          + description                        = (known after apply)
          + dry_run                            = false
          + enable_jumbo_frame                 = (known after apply)
          + expired_time                       = (known after apply)
          + host_name                          = (known after apply)
          + http_endpoint                      = (known after apply)
          + http_put_response_hop_limit        = (known after apply)
          + http_tokens                        = (known after apply)
          + id                                 = (known after apply)
          + image_id                           = "ubuntu_18_04_64_20G_alibase_20190624.vhd"
          + instance_charge_type               = (known after apply)
          + instance_name                      = "tf-cloudshell-test"
          + instance_type                      = "ecs.n2.small"
          + internet_charge_type               = (known after apply)
          + internet_max_bandwidth_in          = (known after apply)
          + internet_max_bandwidth_out         = 10
          + io_optimized                       = (known after apply)
          + ipv6_address_count                 = (known after apply)
          + ipv6_addresses                     = (known after apply)
          + key_name                           = (known after apply)
          + maintenance_action                 = (known after apply)
          + memory                             = (known after apply)
          + network_interface_id               = (known after apply)
          + network_interface_traffic_mode     = (known after apply)
          + os_name                            = (known after apply)
          + os_type                            = (known after apply)
          + password                           = (sensitive value)
          + period                             = (known after apply)
          + primary_ip_address                 = (known after apply)
  4. Kaynakları oluşturun. "Apply complete!" çıktısı başarı anlamına gelir:

    terraform apply
    Apply complete! Resources: 5 added, 0 changed, 0 destroyed.
  5. Bu kaynakları serbest bırakmak için aşağıdaki komutu çalıştırın:

    terraform destroy

Referanslar