All Products
Search
Document Center

Terraform:Gunakan Terraform di Linux

Last Updated:Oct 16, 2025

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:

  1. Instal Terraform. Pastikan sistem Anda dapat mendeteksi dan mengeksekusi perintah Terraform.

  2. Konfigurasikan Terraform. Gunakan metode terpadu untuk mengelola informasi otentikasi identitas Terraform.

  3. 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.

  4. Inisialisasi dan buat sumber daya. Langkah ini mengubah desain infrastruktur Anda menjadi kenyataan.

  5. Lihat dan kelola sumber daya. Setelah penerapan, Anda dapat mengelola dan memelihara lingkungan infrastruktur untuk memastikan kesesuaian dengan persyaratan dan spesifikasi desain terbaru.

  6. 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.

  1. 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.tf
    

    Membuat 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.

  2. 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:

    Penting

    Kami 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

    alicloud_ram_user

    Buat Pengguna RAM

    alicloud_ram_login_profile

    Izinkan Pengguna RAM untuk masuk ke Konsol

    alicloud_ram_access_key

    Buat Pasangan Kunci Akses untuk Pengguna RAM

    alicloud_ram_policy

    Buat kebijakan akses

    alicloud_ram_user_policy_attachment

    Berikan izin kepada Pengguna RAM

    Salin kode contoh berikut ke file main.tf. Lalu, tekan tombol Esc untuk 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

  1. Jalankan perintah terraform plan untuk membuat rencana eksekusi. Rencana tersebut menunjukkan informasi tentang semua sumber daya yang akan dibuat, dimodifikasi, atau dihapus ketika Anda menjalankan perintah terraform apply.

    image

  2. Jalankan perintah terraform apply untuk membuat sumber daya berdasarkan rencana eksekusi yang dihasilkan oleh perintah terraform 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.image

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

  1. Jalankan perintah terraform show untuk melihat informasi rinci tentang sumber daya.

    image

  2. Jalankan perintah terraform state list untuk mencantumkan semua sumber daya yang telah dibuat.

    image

  3. Jalankan perintah terraform state show <tipe sumber daya>.<nama sumber daya> untuk melihat informasi rinci tentang sumber daya tertentu.

    image

  4. 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

  1. 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.

    1. Jalankan perintah vim main.tf dan tekan tombol i untuk masuk ke mode edit.

    2. 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."
      }
    3. Tekan Esc dan masukkan :wq untuk menyimpan file.

  2. Jalankan perintah terraform plan untuk melihat pratinjau perubahan.

    image

  3. Jika perubahan sesuai dengan harapan Anda, jalankan perintah terraform apply untuk menerapkan perubahan ke infrastruktur Anda. Saat Anda menjalankan perintah ini, Terraform meminta Anda untuk mengonfirmasi perubahan. Masukkan yes dan tekan Enter untuk menerapkan perubahan.image

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.

Penting

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.

image

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
}

Referensi