Topik ini menjelaskan cara menggunakan Terraform untuk membuat sumber daya Alibaba Cloud dengan cepat di Linux.
Anda dapat menggunakan Terraform untuk mengelola infrastruktur sebagai kode (IaC). Prosedurnya mencakup langkah-langkah berikut:
Instal Terraform. Pastikan sistem Anda dapat mendeteksi dan mengeksekusi perintah Terraform.
Konfigurasikan Terraform. Gunakan metode terpadu untuk mengelola informasi otentikasi identitas Terraform.
Tulis file konfigurasi Terraform. File konfigurasi adalah inti dari Terraform. Ini mendefinisikan pembuatan, konfigurasi, dan dependensi sumber daya seperti VPC, Instance ECS, dan Bucket OSS.
Inisialisasi dan buat sumber daya. Langkah ini mengubah desain infrastruktur Anda menjadi kenyataan.
Lihat dan kelola sumber daya. Setelah penerapan, Anda dapat mengelola dan memelihara lingkungan infrastruktur untuk memastikan kesesuaian dengan persyaratan dan spesifikasi desain terbaru.
Hapus sumber daya. Ketika sumber daya yang dibuat tidak lagi diperlukan, Anda dapat menghapusnya dari folder yang sesuai.
1. Instal Terraform
Terraform adalah alat infrastruktur sebagai kode (IaC) yang memungkinkan Anda membuat, mengelola, dan melakukan pengendalian versi sumber daya cloud melalui perintah Terraform. Anda hanya dapat menjalankan perintah Terraform setelah menginstalnya. Untuk detail lebih lanjut tentang instalasi, lihat Instal penyedia.
2. Konfigurasikan Terraform
Otentikasi identitas Terraform adalah proses verifikasi identitas Penyedia Terraform Alibaba Cloud sebelum menggunakan Terraform untuk operasi pada infrastruktur Alibaba Cloud. Anda hanya dapat berkomunikasi dengan API Alibaba Cloud dan mengelola sumber daya infrastruktur setelah otentikasi berhasil. Penyedia Terraform Alibaba Cloud mendukung beberapa metode otentikasi. Untuk informasi lebih lanjut, lihat Otentikasi identitas Terraform.
Topik ini menggunakan metode konfigurasi otentikasi identitas menggunakan Pasangan Kunci Akses Pengguna RAM dalam Variabel lingkungan sebagai contoh:
export ALICLOUD_ACCESS_KEY="<yourAccessKeyID>"
export ALICLOUD_SECRET_KEY="<yourAccessKeySecret>"
export ALICLOUD_REGION="cn-beijing"3. Tulis file konfigurasi Terraform
File konfigurasi adalah inti dari Terraform. Ini mendefinisikan sumber daya infrastruktur yang akan diterapkan di cloud atau di tempat, seperti RAM, ECS, dan OSS.
Buat folder baru bernama ram, lalu buat file konfigurasi Terraform bernama main.tf di dalam folder tersebut.
# Buat direktori kerja dan masuk ke direktori. mkdir ram && cd ram # Buat dan edit file konfigurasi. touch main.tf && vim main.tfMembuat direktori kerja independen untuk setiap proyek Terraform memastikan organisasi sumber daya yang jelas, mencegah pengaburan file status, memfasilitasi pengendalian versi dan kolaborasi tim, serta membantu menerapkan isolasi lingkungan dan manajemen modular. Praktik ini meningkatkan kemudahan pemeliharaan dan keamanan manajemen konfigurasi.
Tulis file konfigurasi Terraform. Topik ini menggunakan contoh pembuatan Pengguna RAM dan memberikan izin kepada pengguna untuk mengelola ECS guna menjelaskan cara menulis file konfigurasi.
Sumber daya berikut diperlukan:
PentingKami menyarankan agar Anda tidak mengizinkan Pengguna RAM untuk masuk ke Konsol dan menggunakan Pasangan Kunci Akses secara bersamaan. Hal ini memastikan tanggung jawab setiap Pengguna RAM jelas dan mencegah penyalahgunaan.
Sumber daya
Deskripsi
Buat Pengguna RAM
Izinkan Pengguna RAM untuk masuk ke Konsol
Buat Pasangan Kunci Akses untuk Pengguna RAM
Buat kebijakan akses
Berikan izin kepada Pengguna RAM
Salin kode contoh berikut ke file main.tf. Lalu, tekan tombol
Escuntuk keluar dari mode sisipan, masukkan:wq, dan tekan Enter untuk menyimpan file.variable "user_name" { default = "terraform_user_test" } variable "user_password" { default = "!Test@123456" } variable "user_display_name" { default = "TestAccount" } variable "user_mobile" { default = "86-18688888888" } variable "user_email" { default = "example@example.com" } resource "alicloud_ram_user" "user" { name = var.user_name display_name = var.user_display_name mobile = var.user_mobile email = var.user_email comments = "Dibuat oleh Terraform" force = true } resource "alicloud_ram_login_profile" "profile" { user_name = alicloud_ram_user.user.name password = var.user_password } resource "alicloud_ram_access_key" "ak" { user_name = alicloud_ram_user.user.name secret_file = "accesskey.txt" } resource "alicloud_ram_policy" "policy" { policy_name = "tf-example-policy" policy_document = <<EOF { "Statement": [ { "Action": "ecs:*", "Effect": "Allow", "Resource":"*" } ], "Version": "1" } EOF description = "Ini adalah uji kebijakan." } resource "alicloud_ram_user_policy_attachment" "attach" { policy_name = alicloud_ram_policy.policy.policy_name policy_type = alicloud_ram_policy.policy.type user_name = alicloud_ram_user.user.name }
4. Inisialisasi dan buat sumber daya
Setelah menulis file konfigurasi Terraform, Anda harus menginisialisasi direktori kerja sebelum membuat sumber daya.
4.1 Inisialisasi Terraform
Jalankan perintah terraform init di terminal saat ini untuk melakukan inisialisasi. Perintah terraform init adalah perintah pertama yang harus dijalankan sebelum menggunakan file konfigurasi Terraform apa pun. Perintah ini menginisialisasi direktori kerja Terraform, termasuk mengunduh Plugin Penyedia Alibaba Cloud yang diperlukan dan file rekaman lainnya.
4.2 Buat sumber daya
Jalankan perintah
terraform planuntuk membuat rencana eksekusi. Rencana tersebut menunjukkan informasi tentang semua sumber daya yang akan dibuat, dimodifikasi, atau dihapus ketika Anda menjalankan perintahterraform apply.
Jalankan perintah
terraform applyuntuk membuat sumber daya berdasarkan rencana eksekusi yang dihasilkan oleh perintahterraform plan. Selama proses pembuatan, masukkan yes sesuai prompt untuk melanjutkan pembuatan sumber daya. Untuk informasi lebih lanjut tentang cara melewati nilai variabel, lihat metode pengaturan variabel dalam Variabel.
5. Lihat dan kelola sumber daya
Setelah penerapan, Anda dapat mengelola dan memelihara lingkungan infrastruktur untuk memastikan bahwa itu memenuhi persyaratan dan spesifikasi desain terbaru.
5.1 Lihat sumber daya
Jalankan perintah
terraform showuntuk melihat informasi rinci tentang sumber daya.
Jalankan perintah
terraform state listuntuk mencantumkan semua sumber daya yang telah dibuat.
Jalankan perintah
terraform state show <tipe sumber daya>.<nama sumber daya>untuk melihat informasi rinci tentang sumber daya tertentu.
Lihat informasi tentang sumber daya yang telah dibuat di Konsol Manajemen Alibaba Cloud.
5.2 Kelola sumber daya
Setelah Terraform membuat dan memodifikasi sumber daya, ia menyimpan informasi status dan properti sumber daya ke file terraform.tfstate. Anda dapat menggunakan perintah terraform state untuk mengelola status. Untuk informasi lebih lanjut, lihat Pengenalan mekanisme status.
5.3 Modifikasi sumber daya
Ubah definisi sumber daya yang ingin Anda ubah di file konfigurasi, seperti main.tf. Misalnya, Anda dapat mengurangi izin Pengguna RAM untuk mengizinkan pengguna memiliki hanya izin untuk menanyakan Instance ECS.
Jalankan perintah
vim main.tfdan tekan tombol i untuk masuk ke mode edit.Salin kode berikut dan gunakan untuk mengganti bagian alicloud_ram_policy di file main.tf.
resource "alicloud_ram_policy" "policy" { policy_name = "tf-example-policy" policy_document = <<EOF { "Statement": [ { "Action": [ "ecs:Get*", "ecs:List*", "ecs:Describe*" ], "Effect": "Allow", "Resource":"*" } ], "Version": "1" } EOF description = "Ini adalah uji kebijakan." }Tekan Esc dan masukkan :wq untuk menyimpan file.
Jalankan perintah
terraform planuntuk melihat pratinjau perubahan.
Jika perubahan sesuai dengan harapan Anda, jalankan perintah
terraform applyuntuk menerapkan perubahan ke infrastruktur Anda. Saat Anda menjalankan perintah ini, Terraform meminta Anda untuk mengonfirmasi perubahan. Masukkanyesdan tekan Enter untuk menerapkan perubahan.
6. Hapus sumber daya
Ketika sumber daya yang dibuat tidak lagi diperlukan, Anda dapat menjalankan perintah terraform destroy untuk menghapus semua sumber daya yang telah dibuat.
Ketika Anda menghapus kebijakan akses yang memiliki beberapa versi, perintah terraform destroy tidak dapat langsung menghapus sumber daya. Anda dapat menambahkan parameter force ke alicloud_ram_policy dan atur nilainya ke true untuk memaksa menghapus semua versi kebijakan. Jika kebijakan dirujuk oleh Pengguna RAM lain atau Peran RAM, asosiasi secara otomatis dihapus sebelum kebijakan dihapus. Gunakan properti force dengan hati-hati.

Contoh lengkap
Untuk membantu Anda dengan cepat mencoba Terraform, topik ini menyediakan kode Terraform lengkap. Anda dapat menyalin kode dan menjalankannya.
variable "user_name" {
default = "terraform_user_test"
}
variable "user_password" {
default = "!Test@123456"
}
variable "user_display_name" {
default = "TestAccount"
}
variable "user_mobile" {
default = "86-18688888888"
}
variable "user_email" {
default = "example@example.com"
}
resource "alicloud_ram_user" "user" {
name = var.user_name
display_name = var.user_display_name
mobile = var.user_mobile
email = var.user_email
comments = "Dibuat oleh Terraform"
force = true
}
resource "alicloud_ram_login_profile" "profile" {
user_name = alicloud_ram_user.user.name
password = var.user_password
}
resource "alicloud_ram_access_key" "ak" {
user_name = alicloud_ram_user.user.name
secret_file = "accesskey.txt"
}
resource "alicloud_ram_policy" "policy" {
policy_name = "tf-example-policy"
policy_document = <<EOF
{
"Statement": [
{
"Action": "ecs:*",
"Effect": "Allow",
"Resource":"*"
}
],
"Version": "1"
}
EOF
description = "Ini adalah uji kebijakan."
}
resource "alicloud_ram_user_policy_attachment" "attach" {
policy_name = alicloud_ram_policy.policy.policy_name
policy_type = alicloud_ram_policy.policy.type
user_name = alicloud_ram_user.user.name
}