Terraform adalah alat open source infrastructure as code (IaC) yang memungkinkan Anda mengelola siklus hidup lengkap sumber daya Alibaba Cloud melalui file konfigurasi deklaratif. Topik ini menjelaskan cara memulai penggunaan Terraform—baik melalui antarmuka visual maupun command line—untuk membuat sumber daya Alibaba Cloud pertama Anda.
Pilih metode
Terraform menyediakan dua metode: visual dan command-line. Pilih metode yang sesuai dengan kebutuhan Anda.
|
Metode |
Skenario |
Keunggulan |
Batasan |
|
Penggunaan pertama kali, belum familiar dengan parameter, debugging cepat |
Konfigurasikan sumber daya menggunakan formulir grafis. Tidak perlu coding. |
Hanya mendukung operasi sumber daya tunggal. |
|
|
Evaluasi cepat, lingkungan produksi, orkestrasi kompleks |
Mendukung orkestrasi multi-sumber daya dan manajemen state. |
Memerlukan lingkungan CLI. |
Jika Anda memilih metode CLI, siapkan lingkungan Anda menggunakan Cloud Shell atau instalasi lokal.
Gunakan Terraform Explorer
Terraform Explorer adalah alat debugging online Alibaba Cloud yang dibangun di atas Terraform. Alat ini menghasilkan file konfigurasi Terraform dari formulir dan menjalankannya secara online. Untuk informasi lebih lanjut, lihat Ikhtisar Explorer.
Bagian ini menggunakan pembuatan Virtual Private Cloud (VPC) sebagai contoh, mencakup dua cara menggunakan Terraform Explorer: parameter kustom dan templat sampel.
Buat sumber daya menggunakan parameter kustom
Untuk mengonfigurasi parameter sesuai kebutuhan Anda, ikuti langkah-langkah berikut:
-
Login ke Terraform Explorer. Pilih Product dan Resource Type. Isi parameter menggunakan Resource Documentation, lalu klik Initiate.
Parameter utama untuk membuat VPC tercantum di bawah ini. Untuk detail parameter lebih lanjut, lihat alicloud_vpc.
Nama Parameter
Deskripsi
Nilai contoh
vpc_name
Nama VPC
tf-test-vpc
cidr_block
Blok CIDR privat untuk VPC
192.168.0.0/16
description
Deskripsi VPC
VPC ini dibuat menggunakan Terraform.
-
Pada tab Template Details, pastikan parameter sudah benar, lalu klik Plan untuk melihat rencana eksekusi.
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" } -
Pada tab Details, tinjau informasi tentang sumber daya yang akan dibuat, lalu klik Execute.
Hasil pratinjau menampilkan status Success dan pesan
Plan: 1 to add, 0 to change, 0 to destroy. Ini menunjukkan bahwa sumber dayaalicloud_vpc.defaultakan dibuat.cidr_blockadalah192.168.0.0/16, dandescriptionadalahThe VPC was created using Terraform.. Terraform menghasilkan atribut lain setelah eksekusi. -
Pada tab Execution Details, lihat hasilnya. Eksekusi yang berhasil menampilkan pesan "
Apply complete! Resources: 1 added, 0 changed, 0 destroyed." Jika eksekusi gagal, modifikasi parameter berdasarkan pesan error dan coba lagi. -
Pada tab Resource Details, lihat informasi tentang sumber daya yang telah dibuat.
Alamat sumber daya adalah
alicloud_vpc.default. Halaman ini menampilkan berbagai atribut VPC, termasuk:-
cidr_block:
192.168.0.0/16 -
name:
tf-test-vpc -
description:
The VPC was created using Terraform. -
create_time: Waktu saat VPC dibuat.
-
Konfigurasi jaringan seperti classic_link_enabled dan enable_ipv6.
-
Informasi sumber daya terkait seperti resource_group_id, route_table_id, dan router_id.
-
-
(Opsional) Modifikasi sumber daya: Sesuaikan parameter dan klik Plan & Apply, lalu ulangi langkah 2 hingga 4. Pembaruan yang berhasil menampilkan pesan "
Apply complete! Resources: 0 added, 1 changed, 0 destroyed.". -
(Opsional) Hapus sumber daya: Pada tab Execution Details, klik Destroy Resources. Kemudian, pada tab Details, klik Execute.
Saat operasi selesai, tab Execution Details menampilkan status Success dengan pesan
Apply complete! Resources: 0 added, 0 changed, 1 destroyed, yang mengonfirmasi bahwa satu sumber daya VPC telah dihapus.
Buat sumber daya menggunakan templat sampel
Jika Anda belum familiar dengan parameter sumber daya atau ingin memulai dengan cepat, gunakan templat sampel dari Terraform Explorer.
-
Login ke Terraform Explorer. Pilih Product, Resource Type, dan Sample Template yang sesuai, lalu klik Initiate. Anda dapat melihat detail templat pada tab Sample Template di sebelah kanan.
Di area Input Parameters di sebelah kiri, Anda dapat melihat dan memodifikasi parameter yang diperlukan oleh templat. Misalnya, Anda dapat mengatur parameter name menjadi
terraform-example. Anda juga dapat mengklik Add Parameter untuk menambahkan lebih banyak parameter. -
Pada tab Template Details, klik Plan & Apply.
Templat sampel ini dalam format Terraform. Templat ini mendefinisikan sumber daya
alicloud_vpcdengan parameter sepertiipv6_ispdiatur ke BGP,cidr_blockdiatur ke10.0.0.0/8, danenable_ipv6diatur ke true. -
Pada tab Execution Details, Anda dapat melihat hasil eksekusi.
-
(Opsional) Untuk menghapus sumber daya yang telah dibuat, klik Destroy Resources pada tab Execution Details. Kemudian, pada tab Details, klik Execute.
Anda juga dapat melakukan operasi seperti Continue dan Destroy Resources dari Call History.
Gunakan Terraform CLI
Untuk menggunakan Terraform dari command line, siapkan lingkungan CLI, buat file konfigurasi, dan jalankan perintah untuk membuat sumber daya. Pilih salah satu metode berikut untuk menyiapkan lingkungan Terraform CLI Anda:
-
Cloud Shell (direkomendasikan): Tidak perlu instalasi. Ideal untuk evaluasi cepat dan pembelajaran.
-
Instalasi lokal: Terbaik untuk lingkungan produksi, integrasi berkelanjutan, dan penggunaan jangka panjang.
Cloud Shell
Alibaba Cloud Cloud Shell adalah alat operasi dan pemeliharaan gratis yang telah dilengkapi Terraform yang dipra-instal dan dikonfigurasi dengan kredensial identitas. Anda dapat langsung menjalankan perintah Terraform.
Login ke Cloud Shell
Buka browser Anda dan kunjungi Cloud Shell. Untuk informasi lebih lanjut, lihat Gunakan Cloud Shell.
Login sebagai Pengguna RAM. Untuk menjaga keamanan Akun Alibaba Cloud Anda, hindari menggunakan Akun Alibaba Cloud Anda untuk mengakses sumber daya cloud kecuali benar-benar diperlukan.
Ganti versi Terraform
Versi Terraform default di Cloud Shell mungkin sudah usang. Ganti ke versi 1.2 atau yang lebih baru untuk memastikan semua fitur berfungsi dengan benar.
-
Periksa versi Terraform Anda saat ini:
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 -
Daftar versi Terraform yang tersedia di Cloud Shell:
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) -
Ganti ke versi tertentu (misalnya, 1.9.5):
tfenv use 1.9.5shell@Alicloud:~$ tfenv use 1.9.5 Switching default version to v1.9.5 Switching completed
Instalasi lokal
Terbaik untuk lingkungan produksi dan orkestrasi kompleks. Instal Terraform dan konfigurasikan kredensial identitas terlebih dahulu.
Instal menggunakan package manager (direkomendasikan)
macOS
Instal menggunakan Homebrew:
# Tambahkan tap HashiCorp untuk menentukan lokasi paket di Homebrew
brew tap hashicorp/tap
# Instal Terraform
brew install hashicorp/tap/terraform
Perbarui ke versi terbaru:
# Perbarui Homebrew
brew update
# Tingkatkan Terraform
brew upgrade hashicorp/tap/terraform
Windows
Instal menggunakan Chocolatey:
choco install terraform
Linux
Sebagai contoh, menggunakan package manager yum:
yum install -y dnf-plugin-releasever-adapter
yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
yum install terraform
Instalasi manual
Jika package manager tidak tersedia, instal secara manual.
Gunakan binary yang telah dikompilasi
-
Unduh file ZIP untuk sistem operasi Anda dari website Terraform. Ekstrak arsip tersebut.
-
Pindahkan file biner
terraformke direktori dalamPATHsistem Anda:-
macOS atau Linux
mv ~/Downloads/terraform /usr/local/bin/ -
Windows
-
Buka Control Panel > System > System Settings > Environment Variables.
-
Di System Variables, temukan PATH dan klik Edit.
-
Tambahkan path ke direktori Terraform Anda. Pisahkan dari entri lain dengan titik koma (misalnya,
c:\path;c:\path2). -
Buka jendela command-line baru agar perubahan berlaku.
-
-
Kompilasi dari sumber
Anda harus terlebih dahulu menginstal lingkungan pengembangan Go.
-
Klon repositori sumber Terraform:
git clone https://github.com/hashicorp/terraform.git -
Masuk ke direktori tersebut, lalu kompilasi dan instal perangkat lunaknya.
cd terraform go installSetelah kompilasi, biner ditempatkan di direktori
$GOPATH/bin/. -
Pastikan
$GOPATH/binditambahkan ke PATH sistem Anda. Gunakan langkah yang sama seperti pada bagian Gunakan binary yang telah dikompilasi, langkah 2.
Verifikasi instalasi
Jalankan perintah ini untuk memastikan Terraform telah terinstal dengan benar:
terraform version
Jika perintah berhasil dijalankan dan menampilkan nomor versi, instalasi telah selesai.
Contoh: Buat instance ECS
Contoh ini membuat instance ECS untuk menunjukkan alur kerja orkestrasi Terraform lengkap: buat VPC → buat vSwitch → buat security group → buat instance ECS.
-
Buat direktori kerja dan tulis file konfigurasi Terraform
main.tf:mkdir tf-demo && cd tf-demo vim main.tfSalin kode berikut ke dalam
main.tf:provider "alicloud" { region = var.region } # Wilayah untuk pembuatan sumber daya variable "region" { default = "cn-beijing" } # Nama instance ECS variable "instance_name" { default = "tf-cloudshell-test" } # Tipe instans ECS variable "instance_type" { default = "ecs.n2.small" } # Bandwidth publik keluar. Nilai 0 berarti tidak ada akses jaringan publik. variable "internet_bandwidth" { default = 10 } # Citra OS ECS variable "image_id" { default = "ubuntu_18_04_64_20G_alibase_20190624.vhd" } # Jenis disk sistem ECS variable "disk_category" { default = "cloud_efficiency" } # Kata sandi logon instance ECS variable "password" { default = "TF-test@1234" } # Buat VPC resource "alicloud_vpc" "vpc" { vpc_name = "tf_test_foo" cidr_block = "172.16.0.0/12" } # Kueri zona ketersediaan berdasarkan tipe instans dan kategori disk data "alicloud_zones" "default" { available_disk_category = var.disk_category available_resource_creation = "VSwitch" available_instance_type = var.instance_type } # Buat 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 } # Buat security group resource "alicloud_security_group" "default" { security_group_name = "default" vpc_id = alicloud_vpc.vpc.id } # Buat aturan grup keamanan masuk 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" { # Lampirkan 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 # Tentukan vSwitch vswitch_id = alicloud_vswitch.vsw.id internet_max_bandwidth_out = var.internet_bandwidth password = var.password }PentingAturan grup keamanan dalam contoh ini membuka semua port TCP (1–65535) dan mengizinkan traffic dari alamat IP apa pun (0.0.0.0/0). Gunakan ini hanya di lingkungan pengujian. Di lingkungan produksi, batasi port dan alamat IP sumber sesuai kebutuhan.
-
Inisialisasi direktori kerja Terraform:
terraform init -
Pratinjau rencana eksekusi untuk memastikan sumber daya mana yang akan dibuat:
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) -
Buat sumber daya tersebut. Output "
Apply complete!" berarti berhasil:terraform applyApply complete! Resources: 5 added, 0 changed, 0 destroyed. -
Untuk melepaskan sumber daya ini, jalankan:
terraform destroy