Sebelum menulis resource OpenTofu pertama, ada fondasi yang harus kokoh: dasar Linux CLI, konsep cloud computing, pemahaman format data terstruktur, instalasi binary tofu, dan setup kredensial AWS, GCP, atau LocalStack. Episode ini menyiapkan semuanya agar kalian siap berlatih tanpa hambatan.

Selamat datang di series Belajar OpenTofu! Selama 21 episode kita akan menempuh perjalanan dari nol hingga arsitektur infrastructure as code yang siap produksi. OpenTofu adalah fork open-source dari Terraform yang dinaungi Linux Foundation — dan di episode ini kalian akan menyiapkan semua peralatan untuk mengikutinya.
Sebelum menulis resource atau menjalankan tofu apply, ada beberapa fondasi yang harus kokoh: skill dasar Linux CLI, pemahaman konsep cloud computing, format data terstruktur, instalasi binary tofu, dan jalur kredensial menuju cloud. Anggap episode ini peta jalan: setelah selesai, terminal kalian siap dipakai untuk seluruh series.
OpenTofu dioperasikan hampir seluruhnya lewat terminal. Ini bukan kebetulan — otomasi dunia nyata (CI/CD pipeline, server remote, scripting) semuanya hidup di CLI. Kalian tidak perlu jadi ahli sysadmin, tapi harus nyaman dengan perintah dasar berikut.
pwd # posisi direktori saat ini
ls -la # daftar file termasuk hidden file
cd ~/lab-opentofu # pindah direktori
mkdir -p aws/modules # buat direktori bertingkat
cp main.tf backup/ # salin file
grep "region" main.tf # cari teks di dalam fileSelain navigasi, pahami permission file. OpenTofu menolak membaca state dengan permission yang terlalu terbuka, dan AWS CLI menyimpan kredensial di ~/.aws yang sensitif. Konsep r, w, dan x akan kalian temui terus. Terakhir, pastikan bisa memakai package manager distro: apt untuk Debian/Ubuntu, dnf untuk Fedora/RHEL, dan brew untuk macOS.
Tip
Tidak perlu menghafal semua flag. Yang penting tahu cara mencari bantuan: man <perintah> untuk manual dan --help di hampir semua CLI. Kemampuan menemukan dokumentasi lebih berharga daripada menghafal.
OpenTofu tidak bekerja di ruang hampa — ia membuat, mengubah, dan menghapus resource di cloud lewat API. Pahami peran komponen dasarnya, karena masing-masing akan menjadi resource OpenTofu di episode-episode berikutnya.
| Konsep | Analogi | Resource OpenTofu |
|---|---|---|
| Virtual Machine / EC2 | Komputer yang selalu menyala di gedung cloud | aws_instance |
| VPC / Subnet | Jalan raya dan rambu lalu lintas sebuah kota | aws_vpc, aws_subnet |
| IAM | Kartu akses siapa boleh masuk ruangan mana | aws_iam_role |
| Cloud Storage | Gudang yang bisa diakses dari mana saja | aws_s3_bucket |
| Security Group | Satpam pintu yang menentukan siapa boleh masuk | aws_security_group |
Komponen yang paling menentukan perjalanan kalian adalah IAM. OpenTofu berkomunikasi dengan cloud API memakai kredensial identitas IAM. Prinsip least privilege — memberi akses seminimal mungkin — akan terus muncul di series ini, karena itu garis pertahanan pertama infrastruktur.
Note
Kalian tidak perlu hafal seluruh layanan cloud sekarang. Episode 3 akan menunjukkan bagaimana komponen-komponen ini direpresentasikan sebagai resource, lengkap dengan dokumentasi atributnya. Fokus episode 0: paham peran masing-masing komponen.
OpenTofu memakai HCL (HashiCorp Configuration Language), yang dirancang ramah manusia dan dekat dengan JSON. Memahami JSON dan YAML mempercepat kalian memahami HCL, karena semuanya berbasis struktur key-value.
{
"name": "web-server",
"port": 80,
"tags": ["dev", "backend"]
}Perhatikan polanya: di JSON "key": value, di YAML key: value, di HCL key = value. Perbedaan utama HCL: ia menambahkan konsep block — struktur resource "type" "name" { ... } yang tidak dimiliki JSON dan YAML secara langsung.
Kebutuhan hardware OpenTofu sangat sederhana — cukup laptop biasa. Daftar tools yang wajib disiapkan:
| Tool | Fungsi |
|---|---|
OpenTofu CLI (tofu) | Binary utama untuk init, plan, apply, destroy |
| VS Code + ekstensi OpenTofu | Syntax highlighting dan autocomplete HCL |
| Cloud CLI | aws atau gcloud untuk setup kredensial |
| Akun cloud / LocalStack | Target provisioning: free tier AWS/GCP, atau emulator lokal gratis |
OpenTofu adalah binary tunggal tanpa dependency tambahan. Pilih metode sesuai sistem operasi:
curl -fsSL https://get.opentofu.org/install-opentofu.sh | sudo sh -s -- --install-method deb
sudo apt-get update && sudo apt-get install -y tofuNote
Pengguna Windows: gunakan WSL2 dan jalankan seluruh command di dalamnya. Dokumentasi, contoh, dan CI/CD production hampir selalu ditulis dalam gaya Linux — membiasakan diri sejak awal akan menghemat banyak waktu.
Setelah terpasang, verifikasi:
tofu --version
OpenTofu v1.9.2
on linux_amd64Kalian akan banyak menulis file .tf, jadi editor yang baik sangat membantu. Pasang ekstensi OpenTofu (atau HashiCorp Terraform sebagai alternatif, karena sintaksnya identik) dari marketplace VS Code. Fitur utamanya: syntax highlighting HCL, autocomplete untuk resource dan argument, serta format otomatis yang menjaga konsistensi sebelum tofu validate ikut memeriksa.
OpenTofu butuh kredensial untuk berbicara dengan API cloud. Ada tiga jalur yang bisa ditempuh.
Jalur 1: AWS CLI. Install AWS CLI, lalu konfigurasi dengan aws configure:
aws configure
AWS Access Key ID [None]: AKIAXXXX
AWS Secret Access Key [None]: ****************
Default region name [None]: ap-southeast-1
Default output format [None]: jsonPerintah ini menyimpan kredensial ke ~/.aws/credentials, dan OpenTofu membacanya secara otomatis.
Warning
Jangan pernah commit kredensial ke Git atau membagikannya. Secret Access Key adalah identitas digital kalian — jika bocor, orang lain bisa mengendalikan infrastruktur dan menagihkan biaya. Gunakan environment variable atau secret manager, dan aktifkan MFA di akun IAM.
Jalur 2: GCP CLI. Install gcloud, lalu login dengan application default credentials:
gcloud auth application-default login
gcloud config set project <PROJECT_ID>Jalur 3: LocalStack (gratis dan lokal). Tidak punya akun cloud? LocalStack menyediakan emulator lokal untuk ratusan API AWS. Kalian bisa menjalankan tofu apply yang membuat S3 bucket, EC2 instance, dan lainnya di laptop sendiri tanpa biaya:
docker run -d --name localstack -p 4566:4566 localstack/localstack:latest
curl -s http://localhost:4566/_localstack/healthprovider "aws" {
region = "us-east-1"
access_key = "test"
secret_key = "test"
endpoints {
s3 = "http://localhost:4566"
ec2 = "http://localhost:4566"
}
}Tip
Strategi paling hemat: berlatih dengan LocalStack di episode awal, lalu transisi ke free tier AWS/GCP saat membahas modul dan CI/CD. Kalian bisa mengulang tofu apply dan tofu destroy sesuka hati tanpa khawatir tagihan.
Ringkasan episode 0:
tofu --version, dan langsung siap.Semua tools sudah di tangan. Di episode 1 berikutnya kita akan membahas sejarah lahirnya OpenTofu: perubahan lisensi Terraform oleh HashiCorp pada Agustus 2023, manifesto komunitas, hingga ekosistem Linux Foundation. Sampai jumpa!