Pengantar Modul Terraform
Pahami manfaat penggunaan modul untuk merangkum dan menggunakan ulang pola infrastruktur umum sehingga organisasi kode dan pemeliharaan menjadi lebih baik.
Pengantar Modul Terraform adalah pelajaran Terraform Infrastructure as Code gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Terraform Infrastructure as Code, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Terraform Infrastructure as Code mencakup 4 pelajaran total.
Apa Itu Modul Terraform
Modul Terraform adalah paket konfigurasi Terraform yang berdiri sendiri. Anggaplah modul seperti fungsi atau kelas dalam bahasa pemrograman. Modul memungkinkan Anda mengelompokkan sumber daya terkait dan mengelolanya sebagai satu kesatuan.
Modul membantu Anda mengatur kode infrastruktur dan membuatnya lebih mudah dikelola, terutama untuk proyek yang lebih besar.
Mengapa Menggunakan Modul Terraform
Modul memberikan beberapa manfaat utama bagi infrastruktur sebagai kode:
- Dapat Digunakan Kembali: Mendefinisikan satu bagian infrastruktur sekali dan menggunakannya beberapa kali di berbagai proyek atau lingkungan.
- Pengaturan: Memecah konfigurasi kompleks menjadi komponen yang lebih kecil, mudah dikelola, dan logis.
- Konsistensi: Memastikan sumber daya selalu disediakan dengan cara yang terstandar, sehingga mengurangi penyimpangan konfigurasi dan kesalahan.
- Kolaborasi: Tim dapat mengembangkan dan berbagi modul, sehingga mempercepat pengembangan dan mempertahankan standar.
Penjelasan Struktur Modul
Modul Terraform pada dasarnya adalah direktori yang berisi satu atau beberapa .tf. Meskipun fleksibel, struktur yang umum meliputi:
main.tf: Mendefinisikan sumber daya utama yang dibuat modul.variables.tf: Mendeklarasikan variabel masukan yang menyesuaikan perilaku modul.outputs.tf: Mendefinisikan nilai keluaran yang disediakan modul untuk pemanggilnya.versions.tf: Menentukan batasan versi Terraform dan penyedia untuk modul.
Struktur yang teratur ini membantu menjaga kode tetap rapi dan mudah dipahami.
Kode Modul Pertama Anda
Mari kita definisikan modul yang sangat sederhana untuk membuat bucket S3 AWS. Kode ini biasanya berada di direktori tersendiri, misalnya modules/my_s3_bucket/main.tf.
Seluruh berkas ini dapat dijalankan sebagai modul root untuk melihat cara kerjanya, tetapi tujuan utamanya di sini adalah menunjukkan struktur internal modul.
provider "aws" {
region = "us-east-1" # Example region
}
variable "bucket_name" {
description = "Name for the S3 bucket."
type = string
}
variable "acl_setting" {
description = "ACL for the S3 bucket."
type = string
default = "private"
}
resource "aws_s3_bucket" "example_bucket" {
bucket = var.bucket_name
acl = var.acl_setting
tags = {
Environment = "Dev" # Example tag
}
}
output "bucket_id" {
description = "The ID of the S3 bucket."
value = aws_s3_bucket.example_bucket.id
}
output "bucket_arn" {
description = "The ARN of the S3 bucket."
value = aws_s3_bucket.example_bucket.arn
}Masukan Modul: Variabel
Variabel masukan memungkinkan Anda menyesuaikan perilaku modul tanpa mengubah kode intinya. Variabel tersebut didefinisikan dalam berkas variables.tf di dalam direktori modul.
Saat memanggil modul, Anda meneruskan nilai ke variabel ini, sehingga modul dapat digunakan kembali untuk berbagai skenario dan lingkungan. Anggaplah variabel ini sebagai argumen fungsi.
variable "bucket_name" {
description = "Name for the S3 bucket."
type = string
}
variable "acl_setting" {
description = "ACL for the S3 bucket."
type = string
default = "private"
}Keluaran Modul: Menyediakan Data
Nilai keluaran digunakan untuk menyediakan data dari modul ke konfigurasi yang memanggilnya. Dengan cara ini, Anda dapat mengakses informasi penting tentang sumber daya yang dibuat oleh modul.
Keluaran didefinisikan dalam berkas outputs.tf di dalam direktori modul dan dapat dirujuk oleh bagian lain dari konfigurasi Terraform Anda atau bahkan oleh modul lain.
output "bucket_id" {
description = "The ID of the S3 bucket."
value = aws_s3_bucket.example_bucket.id
}
output "bucket_arn" {
description = "The ARN of the S3 bucket."
value = aws_s3_bucket.example_bucket.arn
}Memanggil Modul Khusus Anda
Setelah modul my_s3_bucket kita definisikan, mari kita memanggilnya dari konfigurasi root. Atribut source menentukan tempat Terraform dapat menemukan modul tersebut.
Untuk modul lokal, atribut ini berupa jalur relatif ke direktori modul. Kita meneruskan nilai ke variabel masukan modul dan dapat mengakses keluarannya yang disediakan.
provider "aws" {
region = "us-east-1"
}
module "my_website_bucket" {
source = "./modules/my_s3_bucket" # Path to your local module
bucket_name = "my-unique-website-bucket-12345"
acl_setting = "public-read"
}
output "website_bucket_arn" {
description = "ARN of the website S3 bucket."
value = module.my_website_bucket.bucket_arn
}
output "website_bucket_id" {
description = "ID of the website S3 bucket."
value = module.my_website_bucket.bucket_id
}Berbagai Sumber Modul
Modul tidak hanya berasal dari lokal! Terraform dapat mengambil modul dari berbagai sumber, sehingga memberi Anda fleksibilitas:
- Jalur Lokal:
./modules/my_module(seperti pada contoh kita) - Terraform Registry:
hashicorp/vpc/aws(modul yang tersedia untuk umum) - Repositori Git:
git::https://example.com/repo.git - Bucket S3:
s3::https://s3-us-west-2.amazonaws.com/example-bucket/module.zip
Terraform Registry adalah tempat yang bagus untuk menemukan modul siap pakai yang telah diperiksa komunitas untuk pola infrastruktur umum.
Dampak Praktis Modul
Bayangkan Anda mengelola ratusan sumber daya di berbagai lingkungan (pengembangan, staging, produksi). Tanpa modul, Anda akan memiliki berkas konfigurasi yang sangat besar dan berulang.
Modul memungkinkan Anda mendefinisikan pola "server web" atau "basis data" sekali. Kemudian, Anda cukup memanggil modul tersebut untuk setiap instans sambil meneruskan variabel yang berbeda untuk pengaturan khusus lingkungan. Hal ini secara drastis mengurangi kesalahan, menyederhanakan pembaruan, dan membuat infrastruktur Anda benar-benar mudah diskalakan.
Pemeriksaan Singkat
Anda telah mempelajari struktur dan manfaat modul Terraform. Mari kita lihat apakah Anda dapat mengidentifikasi salah satu keunggulan utamanya.
Rangkuman & Langkah Berikutnya
Dalam pelajaran ini, kami memperkenalkan modul Terraform sebagai alat yang ampuh untuk mengatur dan menggunakan kembali kode infrastruktur. Anda telah mempelajari:
- Modul merangkum sumber daya menjadi unit yang dapat digunakan kembali.
- Modul meningkatkan pengaturan kode, konsistensi, dan penggunaan kembali.
- Modul menggunakan
variables.tfuntuk masukan danoutputs.tfuntuk data yang disediakan. - Anda dapat memanggil modul dari jalur lokal, registri, atau repositori Git.
Selanjutnya, kita akan membahas lebih dalam cara membuat modul yang dapat digunakan kembali, serta mengeksplorasi pola lanjutan dan praktik terbaik.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Pengantar Modul Terraform” gratis?
Ya — teks lengkap “Pengantar Modul Terraform” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Terraform Infrastructure as Code, upgrade ke CoddyKit PRO. Kursus Terraform Infrastructure as Code mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Pengantar Modul Terraform”?
Pahami manfaat penggunaan modul untuk merangkum dan menggunakan ulang pola infrastruktur umum sehingga organisasi kode dan pemeliharaan menjadi lebih baik. Kamu berlatih Terraform Infrastructure as Code dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Terraform Infrastructure as Code?
Tidak diperlukan pengalaman sebelumnya. Terraform Infrastructure as Code di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Pengantar Modul Terraform” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Terraform Infrastructure as Code ini?
Ya. Setiap pelajaran Terraform Infrastructure as Code menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Pengantar Modul Terraform
- Membuat Modul yang Dapat Digunakan Ulang
- Menggunakan Ruang Kerja untuk Lingkungan
- Menerbitkan Modul ke Registri