Terraform adalah alat open source untuk orkestrasi sumber daya otomatis. Terraform tersedia sebagai layanan terkelola di Resource Orchestration Service (ROS). Anda dapat membuat template dan stack Terraform untuk mengelola resource Alibaba Cloud, Amazon Web Services (AWS), dan Microsoft Azure. Fitur Terraform kompatibel dengan API ROS. Setelah membuat template Terraform, Anda dapat memanggil operasi API ROS untuk menerapkan fitur-fitur tersebut.
Batasan
Terraform hanya mendukung fitur dan resource ROS tertentu. Untuk informasi selengkapnya, lihat Fitur dan resource yang didukung Terraform di ROS.
Metode pengembangan
Kami menyarankan Anda menggunakan metode pengembangan yang sudah dikenal untuk menulis dan menguji kode Terraform. Metode pengembangan berikut didukung:
Gunakan lingkungan on-premises.
Gunakan tool debugging online Terraform. Metode ini hanya dapat digunakan untuk resource Alibaba Cloud.
Direkomendasikan. Buat stack Terraform di Konsol ROS, lalu lanjutkan membuat stack atau perbarui stack sesuai kebutuhan bisnis Anda. Untuk informasi selengkapnya, lihat Buat stack Terraform, Lanjutkan membuat stack, dan Perbarui stack.
Manfaat menggunakan Terraform di ROS
Dibandingkan dengan Terraform CLI, ROS mendukung lebih banyak fitur untuk mengelola kode Terraform guna meningkatkan pengalaman pengguna. ROS menyediakan manfaat berikut:
-
Pengalaman konsol yang sama
Konsol ROS menyediakan pengalaman pengguna yang konsisten dengan pengelolaan template ROS native, sehingga Anda dapat mengelola semua resource Anda dari satu platform terpusat.
Di halaman Create Stack pada Konsol ROS, masukkan Stack Name, pilih Region seperti China (Hangzhou), lalu muat template Terraform Anda di bagian konfigurasi template.
Konsol secara otomatis mengonversi variabel dalam template Terraform Anda menjadi bentuk visual. Anda dapat mengonfigurasi parameter resource seperti VPC Configuration, vSwitch, Instance Type, dan Security Group, dan konsol menyediakan opsi drop-down serta nilai default.
$ terraform plan Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: + create # alicloud_vpc.default will be created + resource "alicloud_vpc" "default" { + cidr_block = "10.0.0.0/8" + vpc_name = (known after apply) } Plan: 6 to add, 0 to change, 0 to destroy.$ terraform apply alicloud_vpc.default: Creating... alicloud_vpc.default: Creation complete after 6s [id=vpc-bp1...] alicloud_vswitch.default[0]: Creating... alicloud_vswitch.default[0]: Creation complete after 5s [id=vsw-bp1...] Apply complete! Resources: 6 added, 0 changed, 0 destroyed. -
Kueri dinamis dan pemilihan parameter serta properti
ROS mendukung kueri dinamis untuk nilai valid parameter.
ROS mendukung kueri komprehensif yang memungkinkan Anda mereferensikan parameter yang sama untuk beberapa properti.
ROS menampilkan parameter pada GUI dan memungkinkan Anda memilih konfigurasi parameter berdasarkan nilai opsional. Untuk informasi selengkapnya, lihat AssociationProperty dan AssociationPropertyMetadata.
Misalnya, saat mengonfigurasi parameter, bidang seperti Virtual Private Cloud (VPC) dan Security Group secara otomatis menampilkan daftar drop-down berisi resource yang tersedia di region saat ini. Daftar ini difilter secara dinamis berdasarkan parameter yang telah dipilih sebelumnya.
Di bagian Parameters template, Anda dapat menentukan
AssociationPropertyuntuk parameter guna melakukan kueri terhadap resource di region tertentu dan menentukanAssociationPropertyMetadatauntuk menambahkan kondisi filter pada parameter. Dengan cara ini, Anda dapat memilih konfigurasi parameter berdasarkan nilai opsional di Konsol ROS.Setelah dikonfigurasi, Anda dapat langsung memilih resource yang ada dari daftar drop-down untuk setiap bidang parameter, sehingga tidak perlu memasukkan ID resource secara manual.
-
Kueri harga untuk resource template
Sebelum menerapkan resource, ROS secara otomatis menghitung dan menampilkan perkiraan harga berdasarkan template Terraform Anda untuk membantu Anda merencanakan anggaran dengan lebih baik.
ROS menampilkan kotak dialog Price Details yang mencantumkan perkiraan biaya berdasarkan Resource Type (seperti instance ECS dan instansiasi basis data RDS), Specifications, Region, Quantity, dan Billing Method. Total Prepaid Monthly Fee ditampilkan di bagian atas.
-
Aktivasi Layanan dan Pemeriksaan Peran
-
Pemeriksaan otomatis: ROS secara otomatis memeriksa apakah layanan yang dirujuk dalam template Terraform telah diaktifkan dan apakah role serta izin yang diperlukan tersedia. Hal ini memastikan semua prasyarat terpenuhi sebelum penerapan. Misalnya, jika layanan seperti Transit Router belum diaktifkan, kotak dialog Dependency Check akan muncul, menunjukkan jumlah masalah dan menyediakan Activation Link. Anda dapat mengklik tautan tersebut untuk menuju halaman aktivasi layanan.
-
Petunjuk dan panduan: Jika layanan yang diperlukan belum diaktifkan atau role belum tersedia, ROS memberikan petunjuk dan panduan untuk membantu Anda menyelesaikan konfigurasi yang diperlukan dengan cepat.
Setelah mengklik tautan aktivasi, Anda akan diarahkan ke halaman aktivasi layanan tersebut, seperti Transit Router. Anda dapat mengaktifkan layanan tersebut dengan menerima Service Agreement.
-
-
Deteksi risiko
ROS secara otomatis mendeteksi potensi risiko untuk membantu Anda mencegah kesalahan. Misalnya, ROS mendeteksi risiko saat Anda menghapus security group.
Saat Anda menghapus stack, sistem menampilkan kotak dialog Delete Stack dengan peringatan risiko di bagian atas. Bagian Risk Alert mencantumkan resource yang memiliki dependensi, seperti security group yang dirujuk oleh instance ECS. Anda harus memilih Deletion Method (pertahankan resource atau hapus resource) dan mengonfirmasi Stack Name sebelum dapat melanjutkan penghapusan.
-
Manajemen versi template dan berbagi
ROS mendukung kontrol versi untuk template Terraform. Anda dapat melihat Template Details seperti ID template, status berbagi, serta waktu pembuatan dan pembaruan. Anda juga dapat beralih antar versi berbeda menggunakan pemilih Template Version, melihat Template Content (seperti kode HCL dalam file main.tf) secara online, membagikan template kepada pengguna lain dengan mengklik tombol Share Template, atau menerapkannya langsung dengan mengklik Create Stack.
Propagasi tag dan kelompok sumber daya
Anda dapat menyebarkan tag dan kelompok sumber daya ke semua resource dalam template sekaligus.
Skenario
Buat stack Terraform
Jika Anda ingin membuat dan mengelola resource di berbagai platform cloud seperti AWS dan Microsoft Azure atau di platform on-premises, Anda dapat membuat stack Terraform untuk mengelola dan mengatur resource di platform-platform tersebut secara terpusat. Untuk informasi selengkapnya, lihat Buat stack Terraform.
Buat template Terraform
Jika Anda ingin membuat dan mengelola resource platform cloud pihak ketiga seperti AWS dan Microsoft Azure di Alibaba Cloud, Anda dapat mendefinisikan resource pihak ketiga tersebut dan mengonfigurasi hubungan dependensi antar resource dalam template Terraform. Dengan cara ini, Anda dapat mengelola resource lintas platform cloud dengan mudah. Untuk informasi selengkapnya, lihat Buat template Terraform.
Struktur template
Template Terraform didukung di ROS setelah Terraform dikelola di ROS. Anda dapat menggunakan template Terraform untuk mengelola resource Alibaba Cloud, AWS, dan Microsoft Azure. Anda dapat mendefinisikan resource dan parameter serta mengonfigurasi hubungan dependensi antar resource dalam template Terraform. Untuk informasi selengkapnya, lihat Struktur template Terraform. Untuk informasi lebih lanjut tentang cara mendefinisikan parameter dalam template Terraform, lihat Apa itu Alibaba Cloud Terraform?
Saran pengembangan
Setelah memahami konsep-konsep terkait Terraform yang dikelola di ROS, Anda dapat mengembangkan kode Terraform dan menggunakannya di ROS berdasarkan saran berikut. Untuk informasi selengkapnya, lihat Metode dan saran pengembangan kode Terraform.
Perjelas definisi variabel.
Tentukan versi provider.
Gunakan parameter semu untuk mendapatkan informasi stack.
Kendalikan mode input parameter dan variabel di konsol.
Gunakan Aliyun::Terraform-v1.0 atau yang lebih baru.
Gunakan Metadata untuk mengontrol tampilan parameter dan variabel di konsol.
Simpan kode on-premises ke file yang namanya diakhiri dengan .debug.tf.
Jangan deklarasikan provider Alibaba Cloud (alicloud) di file .tf.
Gunakan parameter ROS, bukan file .tfvars, untuk meneruskan nilai variabel.
Contoh template Terraform
Untuk informasi selengkapnya, lihat Template contoh Terraform.