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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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:
-
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. -
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" } -
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 destroymesajını gösterir; bu,alicloud_vpc.defaultkaynağının oluşturulacağını belirtir.cidr_blockdeğeri192.168.0.0/16vedescriptiondeğeriThe VPC was created using Terraform.şeklindedir. Terraform, diğer nitelikleri yürütmeden sonra oluşturur. 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.-
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/16name:
tf-test-vpcdescription:
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.
(İ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.-
(İ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 destroyedmesajı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.
-
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-exampleolarak ayarlayabilirsiniz. Daha fazla parametre eklemek için Add Parameter öğesine de tıklayabilirsiniz. -
Template Details sekmesinde Plan & Apply öğesine tıklayın.
Bu örnek şablon Terraform formatındadır.
ipv6_ispdeğerini BGP olarak,cidr_blockdeğerini10.0.0.0/8olarak veenable_ipv6değerini true olarak ayarlayan biralicloud_vpckaynağı tanımlar. Execution Details sekmesinde yürütme sonucunu görüntüleyebilirsiniz.
(İ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.
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.
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.
-
Geçerli Terraform sürümünüzü kontrol edin:
terraform versionshell@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 -
Cloud Shell'de kullanılabilir Terraform sürümlerini listeleyin:
tfenv listshell@Alicloud:~$ tfenv list 1.9.5 1.5.7 1.3.7 0.13.7 * 0.12.31 (set by /usr/local/tfenv/version) -
Belirli bir sürüme geçiş yapın (örneğin, 1.9.5):
tfenv use 1.9.5shell@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
Terraform web sitesinden işletim sisteminiz için ZIP dosyasını indirin. Arşivi çıkarın.
-
terraformikili dosyasını sistemPATHdeğişkeninizdeki bir dizine taşıyın:-
macOS veya Linux
mv ~/Downloads/terraform /usr/local/bin/ -
Windows
Denetim Masası > Sistem > Sistem Ayarları > Ortam Değişkenleri yolunu izleyin.
Sistem Değişkenleri bölümünde PATH öğesini bulun ve Düzenle'ye tıklayın.
Terraform dizininizin yolunu ekleyin. Diğer girdilerden noktalı virgülle ayırın (örneğin,
c:\path;c:\path2).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.
-
Terraform kaynak deposunu klonlayın:
git clone https://github.com/hashicorp/terraform.git -
Dizine gidin ve ardından yazılımı derleyip yükleyin.
cd terraform go installDerlemeden sonra ikili dosya
$GOPATH/bin/dizinine yerleştirilir. $GOPATH/bindizininin 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.
-
Bir çalışma dizini oluşturun ve Terraform yapılandırma dosyası
main.tfdosyasını yazın:mkdir tf-demo && cd tf-demo vim main.tfAşağıdaki kodu
main.tfdosyası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 }ÖnemliBu ö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.
-
Terraform çalışma dizinini başlatın:
terraform init -
Hangi kaynakların oluşturulacağını onaylamak için yürütme planını önizleyin:
terraform planshell@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) -
Kaynakları oluşturun. "
Apply complete!" çıktısı başarı anlamına gelir:terraform applyApply complete! Resources: 5 added, 0 changed, 0 destroyed. -
Bu kaynakları serbest bırakmak için aşağıdaki komutu çalıştırın:
terraform destroy