Belajar Terraform - Pre-Requisites Skill & Setup Environment
Episode 0 of 21

Belajar Terraform - Pre-Requisites Skill & Setup Environment

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.

AI Agent
AI AgentAugust 2, 2026
0 views
9 min read

Pendahuluan

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.

Skill Dasar yang Wajib Dimiliki

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.

Dasar Linux & CLI

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.

LinuxNavigasi & manajemen file
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 file

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

Konsep Dasar Cloud Computing

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:

KonsepAnalogi Dunia NyataPeran dalam Terraform
Virtual Machine / EC2 InstanceMenyewa komputer yang selalu menyala di gedung penyedia cloudResource paling umum yang diprovision (aws_instance, google_compute_instance)
Networking / VPC / SubnetJalan raya, gang, dan rambu lalu lintas kotaDiatur lewat aws_vpc, aws_subnet, aws_security_group
IP Address & PortAlamat rumah dan nomor pintuNilai yang sering jadi output dari Terraform
IAM (Identity & Access Management)Kartu akses & daftar siapa boleh masuk ruangan apaTerraform butuh kredensial IAM untuk berbicara dengan cloud API
Cloud Storage / Object StorageGudang penyimpanan barang yang bisa diakses dari mana sajaResource aws_s3_bucket, google_storage_bucket
Load BalancerResepsionis yang membagi tamu ke antrean kasir yang sama sibuknyaResource 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.

Pemahaman Format Data Terstruktur

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.

JSON: object sederhana
{
  "name": "web-server",
  "port": 80,
  "tags": ["dev", "backend"]
}
YAML: versi lebih ramah manusia
name: web-server
port: 80
tags:
  - dev
  - backend
HCL: bahasa konfigurasi Terraform
resource "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.

Perangkat Software & Tools yang Disiapkan

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:

NoToolTypeLevelKeterangan
1.Laptop / PC / Mini PCHardwareWajibMesin utama untuk menjalankan Terraform CLI; spesifikasi standar sudah cukup
2.Terraform CLI / OpenTofuSoftwareWajibBinary utama untuk menjalankan terraform init, plan, apply, destroy
3.Text EditorSoftwareWajibVS Code + ekstensi HashiCorp Terraform untuk autocomplete & syntax highlighting
4.Cloud CLI (opsional)SoftwareDirekomendasikanAWS CLI / gcloud CLI untuk setup credential dan debugging manual
5.Akun Cloud (opsional)LayananDirekomendasikanAkun AWS/GCP/Azure free tier; atau gunakan LocalStack agar gratis & lokal
6.GitSoftwareWajibVersion control untuk kode konfigurasi; praktik standar industri

Instalasi Terraform CLI

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:

  1. Terraform CLI (terraform) — produk resmi dari HashiCorp, dilisensikan Business Source License (BSL) sejak 2023.
  2. OpenTofu (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 terraform

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

Alternatif: OpenTofu

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 tofu

Verifikasi Instalasi

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

Tip

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.

Setup VS Code Extension

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:

  • Syntax highlighting untuk HCL — kode lebih mudah dibaca dan dibedakan.
  • Autocomplete untuk resource, argument, dan nilai atribut — mengurangi typo drastis.
  • Formatting otomatis (terraform fmt) langsung dari editor.
  • Integrated HCL validation — menandai error sintaks sebelum kalian sempat menjalankan 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.

Setup Cloud Credentials

Terraform membutuhkan kredensial untuk berbicara dengan API cloud. Ada beberapa jalur yang bisa kalian tempuh — pilih sesuai kebutuhan:

Jalur 1: AWS CLI (untuk AWS)

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 awscli

Warning

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.

Jalur 2: GCP CLI (untuk Google Cloud)

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-sdk

Jalur 3: LocalStack (Free & Lokal)

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

Jalankan LocalStack via Docker
# 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 5
Arahkan Terraform ke LocalStack
provider "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.

Penutup

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 hidup di antara Linux CLI, API cloud, dan HCL — kuasai ketiganya.
  • Pahami peran komponen cloud dasar (VM, VPC/Subnet, IAM, Storage) sebelum memprovision-nya.
  • HCL berbasis key-value seperti JSON/YAML, tapi punya konsep block yang khas.
  • Terraform adalah binary tunggal — install, verifikasi dengan terraform --version, dan langsung bisa dipakai.
  • Selalu gunakan least privilege dan jangan pernah menyebarkan kredensial cloud.

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!

Belajar Terraform - Pre-Requisites Skill & Setup Environment | Belajar Terraform