Sebelum masuk lebih dalam ke Terraform, ada beberapa skill dasar dan tools yang perlu kalian siapkan terlebih dahulu, mulai dari Linux CLI, konsep dasar cloud computing, hingga instalasi Terraform CLI dan setup cloud credentials.

Selamat datang di series Belajar Terraform! Series ini akan mengajak kalian menguasai Terraform dari nol hingga level siap produksi: mulai dari konsep Infrastructure as Code (IaC), HCL syntax, provider dan resource, state management, modul, hingga arsitektur enterprise production-grade di episode-episode berikutnya. Tapi seperti kata pepatah, "rumah yang kokoh berdiri di atas fondasi yang kuat". Sebelum menulis block resource pertama atau menjalankan terraform apply, ada beberapa skill dasar dan tools yang wajib kalian miliki dan siapkan terlebih dahulu.
Mengapa prasyarat ini begitu penting? Terraform adalah orchestrator infrastruktur cloud — ia berinteraksi dengan API cloud (AWS, GCP, Azure), dikonfigurasi menggunakan HCL (yang dekat dengan JSON), dan hampir selalu dioperasikan lewat terminal. Artinya, jika kalian belum familiar dengan dasar Linux CLI, konsep cloud computing, dan format data terstruktur, perjalanan belajar kalian akan tersendat di setiap langkah. Bayangkan ingin menjadi pilot pesawat tapi belum paham cara membaca instrumen kokpit — sehebat apapun pesawatnya, tetap sulit untuk lepas landas.
Episode 0 ini akan menjadi peta jalan untuk memastikan kalian semua siap. Kita akan membahas tiga skill fundamental (Linux CLI, konsep dasar cloud computing, dan format data terstruktur), lalu menyiapkan seluruh perangkat lunak yang dibutuhkan, dan ditutup dengan instalasi Terraform CLI beserta verifikasinya dan setup cloud credentials. Setelah episode ini selesai, kalian sudah benar-benar siap melangkah ke episode 1 yang membahas sejarah dan latar belakang mengapa Terraform dan IaC dibutuhkan.
Kita mulai dari skill. Tanpa skill ini, setup tools secanggih apapun tidak akan berguna. Berikut tiga pilar skill yang harus kalian kuasai setidaknya di level dasar.
Terraform lahir dan tumbuh besar di ekosistem Linux/Unix. Meskipun secara teknis Terraform bisa dijalankan di Windows (native binary maupun WSL2), mayoritas penggunaannya di dunia nyata — terutama di CI/CD pipeline dan server build agent — berjalan di atas Linux. Karena itu, kemampuan mengoperasikan Linux melalui CLI (Command Line Interface) adalah syarat mutlak.
Apa saja yang harus kalian kuasai?
1. Navigasi & manajemen file. Kalian harus nyaman berpindah direktori, melihat isi, membuat, menyalin, dan menghapus file. Ini adalah kemampuan paling dasar yang akan kalian pakai setiap hari, termasuk saat menaruh file konfigurasi .tf.
pwd # cetak direktori kerja saat ini
ls -la # lihat isi direktori (termasuk hidden file)
cd ~/lab-terraform # pindah ke direktori project
mkdir -p terraform/aws # buat direktori bertingkat
cp main.tf backup/main.tf # salin file2. Membaca dan memproses teks. File konfigurasi Terraform adalah teks biasa, dan saat debugging kita sering harus menyaring output log yang panjang. Kalian perlu mengenal perintah seperti cat, less, grep, sed, dan cut.
3. Permission file (chmod & chown). Beberapa tools (misalnya AWS CLI) menyimpan credential di ~/.aws/credentials dan sangat peka terhadap permission. Terraform sendiri akan menolak membaca file terraform.tfstate yang permission-nya terlalu terbuka (600 adalah standar yang benar). Pahami konsep r (read), w (write), dan x (execute) untuk tiga kelompok: owner, group, dan others.
4. Paket manager. Kalian harus bisa menginstall software lewat paket manager distro masing-masing, karena inilah cara paling mudah memasang Terraform CLI. Di Ubuntu/Debian menggunakan apt, di Fedora/RHEL menggunakan dnf, dan di macOS menggunakan brew.
Tip
Jika kalian masih pemula di Linux, jangan khawatir — kalian tidak perlu jadi sysadmin pro untuk belajar Terraform. Yang penting kalian nyaman menavigasi direktori, mengedit file, dan menjalankan perintah dengan sudo bila diperlukan. Sisanya akan ikut terasah seiring perjalanan series ini.
Terraform tidak berfungsi di ruang hampa — ia menciptakan, mengubah, dan menghapus sumber daya di cloud. Jika kalian tidak paham apa itu Virtual Machine, VPC, atau IAM, kalian tidak akan paham apa yang sebenarnya sedang kalian "provision". Berikut konsep-konsep dasar cloud yang wajib dipahami:
| Konsep | Analogi Dunia Nyata | Peran dalam Terraform |
|---|---|---|
| Virtual Machine / EC2 Instance | Menyewa komputer yang selalu menyala di gedung penyedia cloud | Resource paling umum yang diprovision (aws_instance, google_compute_instance) |
| Networking / VPC / Subnet | Jalan raya, gang, dan rambu lalu lintas kota | Diatur lewat aws_vpc, aws_subnet, aws_security_group |
| IP Address & Port | Alamat rumah dan nomor pintu | Nilai yang sering jadi output dari Terraform |
| IAM (Identity & Access Management) | Kartu akses & daftar siapa boleh masuk ruangan apa | Terraform butuh kredensial IAM untuk berbicara dengan cloud API |
| Cloud Storage / Object Storage | Gudang penyimpanan barang yang bisa diakses dari mana saja | Resource aws_s3_bucket, google_storage_bucket |
| Load Balancer | Resepsionis yang membagi tamu ke antrean kasir yang sama sibuknya | Resource aws_lb, google_compute_forwarding_rule |
Note
Kalian tidak perlu hafal seluruh layanan cloud di awal. Episode 3 nanti akan membahas bagaimana Terraform merepresentasikan sumber daya cloud ini sebagai resource, dan setiap resource punya dokumentasi atributnya sendiri yang bisa kalian cek kapan saja. Yang penting sekarang: kalian paham peran masing-masing komponen cloud di atas.
Yang paling krusial dari daftar di atas adalah IAM. Di sinilah alur kerja autentikasi kalian ke cloud dimulai: kalian membuat sebuah identitas (misalnya user IAM di AWS), memberikan permission yang tepat, lalu Terraform memakai kredensial identitas tersebut untuk menjalankan API. Konsep least privilege (memberi akses seminimal mungkin) akan sangat sering kalian dengar di series ini.
Terraform menggunakan HCL (HashiCorp Configuration Language) sebagai bahasa konfigurasinya. Kabar baiknya, HCL dirancang agar ramah manusia dan sangat dekat dengan JSON — bahkan HCL bisa diterjemahkan langsung menjadi JSON (format .tf.json). Oleh karena itu, memahami format data terstruktur seperti JSON dan YAML akan membuat kalian jauh lebih cepat memahami HCL.
{
"name": "web-server",
"port": 80,
"tags": ["dev", "backend"]
}name: web-server
port: 80
tags:
- dev
- backendresource "aws_instance" "web" {
name = "web-server"
port = 80
tags = ["dev", "backend"]
}Perhatikan kesamaan polanya: semuanya berbasis key-value. Di JSON memakai "key": value, di YAML memakai key: value, dan di HCL memakai key = value di dalam block. Perbedaan utamanya: HCL menambahkan konsep block (struktur resource "type" "name" { ... }) yang tidak dimiliki JSON/YAML secara langsung. Ini akan kita bedah tuntas di episode 2.
Tip
Cara paling cepat melatih intuisi format data: buka file JSON di browser atau VS Code, lalu bandingkan strukturnya dengan contoh HCL di atas. Begitu kalian bisa "membaca" key-value secara mental, membaca konfigurasi Terraform akan terasa seperti membaca resep masakan — tinggal ikuti urutannya.
Setelah skill terpenuhi, sekarang saatnya menyiapkan perangkat. Berbeda dengan series seperti Kubernetes yang butuh cluster, kebutuhan hardware Terraform sangat sederhana — cukup laptop biasa. Berikut daftar lengkapnya:
| No | Tool | Type | Level | Keterangan |
|---|---|---|---|---|
| 1. | Laptop / PC / Mini PC | Hardware | Wajib | Mesin utama untuk menjalankan Terraform CLI; spesifikasi standar sudah cukup |
| 2. | Terraform CLI / OpenTofu | Software | Wajib | Binary utama untuk menjalankan terraform init, plan, apply, destroy |
| 3. | Text Editor | Software | Wajib | VS Code + ekstensi HashiCorp Terraform untuk autocomplete & syntax highlighting |
| 4. | Cloud CLI (opsional) | Software | Direkomendasikan | AWS CLI / gcloud CLI untuk setup credential dan debugging manual |
| 5. | Akun Cloud (opsional) | Layanan | Direkomendasikan | Akun AWS/GCP/Azure free tier; atau gunakan LocalStack agar gratis & lokal |
| 6. | Git | Software | Wajib | Version control untuk kode konfigurasi; praktik standar industri |
Terraform adalah sebuah binary tunggal — tidak ada runtime khusus yang harus diinstall, tidak ada dependency tambahan. Inilah salah satu alasan Terraform begitu mudah didistribusikan. Ada dua distribusi yang perlu kalian ketahui:
terraform) — produk resmi dari HashiCorp, dilisensikan Business Source License (BSL) sejak 2023.tofu) — fork open-source (MPL 2.0) yang dipertahankan komunitas (Linux Foundation) agar IaC tetap tersedia di bawah lisensi open-source penuh. Sintaksnya 100% kompatibel dengan Terraform.# Ubuntu / Debian
sudo apt-get update && sudo apt-get install -y gnupg software-properties-common
wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install terraformUntuk pengguna Windows, opsi paling direkomendasikan bagi kalian yang belajar DevOps adalah menggunakan WSL2 — karena seluruh command yang ada di series ini (dan di kebanyakan dokumentasi produksi) ditulis dalam gaya Linux.
Jika kalian lebih suka distribusi open-source penuh, instalasi OpenTofu sama mudahnya:
# Ubuntu / Debian
sudo apt-get update && sudo apt-get install -y gnupg curl
curl -fsSL https://get.opentofu.org/install-opentofu.sh | sudo sh -s -- --install-method deb
# atau metode sekali-install:
sudo apt-get update && sudo apt-get install -y tofuSetelah terinstall, verifikasi dengan terraform --version. Output yang benar harus menunjukkan versi Terraform dan versi provider yang sudah di-cache (jika ada).
terraform --version
Terraform v1.9.8
on linux_amd64
+ provider registry.terraform.io/hashicorp/random v3.6.3Tip
Di series ini kita akan menulis command dengan prefix terraform, namun semua command tersebut bisa langsung diganti dengan tofu tanpa perubahan lain, karena OpenTofu memang dirancang kompatibel penuh dengan Terraform. Pilih satu saja untuk fokus belajar — saya sarankan mulai dengan Terraform CLI agar referensinya paling lengkap.
Terraform adalah configuration as code — kalian akan banyak menulis dan membaca file .tf. Text editor yang baik menyelamatkan kalian dari typo, indentasi, dan kesalahan atribut. Rekomendasi standar industri adalah Visual Studio Code dengan ekstensi HashiCorp Terraform:
Fitur utama ekstensi ini:
terraform fmt) langsung dari editor.terraform validate.Cara menginstallnya: buka VS Code → masuk ke tab Extensions (Ctrl+Shift+X / Cmd+Shift+X) → cari HashiCorp Terraform → klik Install. Setelah itu, buka folder project Terraform kalian dan buat file main.tf kosong — ekstensi akan otomatis aktif begitu mendeteksi file .tf.
Note
Kuncinya bukan fanatisme terhadap editor tertentu. Jika kalian lebih nyaman dengan Neovim (dengan plugin hashicorp/terraform-ls dan terraform-lsp) atau JetBrains (plugin Terraform/HCL), tetap silakan. Yang penting editor kalian memiliki highlight HCL dan autocomplete, karena keduanya menyelamatkan kalian dari error yang tidak perlu.
Terraform membutuhkan kredensial untuk berbicara dengan API cloud. Ada beberapa jalur yang bisa kalian tempuh — pilih sesuai kebutuhan:
Install AWS CLI, lalu konfigurasi credential dengan aws configure. Perintah ini akan menyimpan Access Key ID dan Secret Access Key ke ~/.aws/credentials.
# Ubuntu/Debian (official installer)
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
# macOS
brew install awscliWarning
Jangan pernah membagikan atau menyimpan Secret Access Key kalian sembarangan, dan jangan commit ke Git. Key ini adalah identitas digital kalian di AWS — jika bocor, orang lain bisa mengontrol seluruh infrastruktur kalian dan menagihkan biaya besar. Selalu simpan di environment variable atau tool secret manager, dan aktifkan MFA di akun IAM.
Install gcloud CLI, lalu login dengan gcloud auth application-default login. Berbeda dengan AWS, gcloud menggunakan application default credentials yang otomatis dibaca oleh SDK dan Terraform.
# Ubuntu/Debian (official repo)
sudo apt-get update && sudo apt-get install -y apt-transport-https ca-certificates gnupg curl
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee /etc/apt/sources.list.d/google-cloud-sdk.list
curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/cloud.google.gpg
sudo apt-get update && sudo apt-get install -y google-cloud-cli
# macOS
brew install --cask google-cloud-sdkTidak punya akun cloud atau takut berbayar? Tidak masalah. LocalStack menyediakan emulator lokal untuk ratusan API AWS — kalian bisa menjalankan terraform apply yang membuat S3 bucket, EC2 instance, dan lain-lain di laptop kalian sendiri, gratis, tanpa akun AWS. Ini cara terbaik untuk belajar Terraform tanpa risiko biaya.
# LocalStack butuh Docker
docker pull localstack/localstack:latest
docker run -d --name localstack -p 4566:4566 localstack/localstack:latest
# Cek status
curl -s http://localhost:4566/_localstack/health | head -n 5provider "aws" {
region = "us-east-1"
access_key = "test"
secret_key = "test"
endpoints {
s3 = "http://localhost:4566"
ec2 = "http://localhost:4566"
}
}Tip
Strategi belajar paling hemat dan aman: pakai LocalStack untuk berlatih di episode-episode awal (2-5), lalu transisi ke free tier AWS/GCP saat mulai membahas modul dan CI/CD. Dengan begitu kalian bisa mengulang-ulang terraform apply dan destroy sesuka hati tanpa khawatir tagihan meledak.
Di episode 0 ini kita sudah menyiapkan pijakan yang kokoh: menguasai tiga skill fundamental (Linux CLI, konsep dasar cloud computing, dan format data terstruktur), menyiapkan perangkat dan tools yang dibutuhkan, menginstall Terraform CLI (atau OpenTofu), dan menyiapkan jalur kredensial cloud — baik melalui AWS CLI, gcloud, maupun LocalStack untuk latihan gratis.
Poin penting yang harus kalian bawa:
terraform --version, dan langsung bisa dipakai.Pastikan semua skill dan tools di atas sudah kalian siapkan, karena episode berikutnya akan membahas konsep secara lebih mendalam. Di episode 1 selanjutnya, kita akan membahas sejarah, konsep Infrastructure as Code, dan mengapa dunia modern memilih Terraform — mulai dari evolusi pengelolaan infrastruktur dari ClickOps manual ke shell scripting, hingga perbandingan paradigma declarative vs imperative vs code-based, dan apa yang membuat Terraform begitu istimewa. Pastikan tetap semangat, karena perjalanan belajar Terraform baru saja dimulai!