Langsung ke konten utama

Day 105 : Mempelajari Terraform Provisioner

Halo semuanya! 👋
Kali ini, saya ingin berbagi pengalaman melanjutkan pembelajaran saya tentang Terraform. Tulisan ini juga akan jadi semacam catatan pengingat buat saya sendiri. Kadang-kadang, kita pasti pernah lupa dengan materi yang sudah dipelajari, kan? Nah, tulisan ini diharapkan bisa membantu saya untuk mengingat kembali konsep yang sudah dipelajari.

Hari ini, saya akan menulis Terraform Provisioner. Mungkin ada yang bertanya-tanya, Provisioner itu apa sih? atau Kenapa penting dalam konfigurasi Terraform?



Apa Itu Terraform Provisioner?

Provisioner adalah komponen dalam Terraform yang digunakan untuk mengeksekusi skrip atau perintah di dalam resource yang telah dibuat. Dalam istilah sederhana, provisioner bisa kita anggap sebagai "alat bantu" untuk mengatur atau mempersiapkan resource kita setelah dibuat.

Contohnya? Misalnya, Anda baru saja membuat sebuah virtual machine (VM). Dengan provisioner, Anda bisa langsung menginstal software tertentu, menyalin file ke dalam VM, atau bahkan menjalankan skrip khusus. Jadi, selain menciptakan resource, provisioner membantu kita untuk "mengisi" atau "menghidupkan" resource tersebut sesuai kebutuhan.

Jenis-Jenis Terraform Provisioner

Dalam Terraform, ada beberapa jenis provisioner yang sering digunakan:

  1. File Provisioner
    Provisioner ini digunakan untuk mengirim file dari komputer lokal ke resource yang baru saja dibuat. Misalnya, Anda bisa mengunggah file konfigurasi atau script ke dalam VM.

  2. Remote-Exec Provisioner
    Jenis ini digunakan untuk menjalankan perintah di resource yang sudah dibuat. Contohnya, jika Anda ingin menginstal aplikasi tertentu di server, Anda bisa melakukannya dengan provisioner ini.

  3. Local-Exec Provisioner
    Kalau provisioner ini berbeda sedikit, karena perintahnya dieksekusi di komputer lokal Anda, bukan di resource yang dibuat.

Contoh Penggunaan Terraform Provisioner

Oke, biar lebih jelas, mari kita lihat contoh penggunaannya. Misalnya, Anda ingin membuat sebuah VM menggunakan Terraform, dan setelah VM selesai dibuat, Anda ingin langsung menginstal Nginx di dalamnya. Berikut adalah contohnya:

resource "aws_instance" "example" { ami = "ami-0c55b159cbfafe1f0" # Contoh AMI Ubuntu instance_type = "t2.micro" # Remote-Exec Provisioner untuk menginstal Nginx provisioner "remote-exec" { inline = [ "sudo apt update", "sudo apt install -y nginx", ] } }

Dalam contoh di atas, Terraform akan membuat sebuah instance AWS (VM) dan langsung menginstal Nginx di dalamnya. Dengan ini, Anda tidak perlu lagi mengakses server secara manual untuk melakukan instalasi. Hemat waktu banget, kan?

Catatan Penting tentang Provisioner

Meskipun provisioner itu powerful, Terraform sebenarnya merekomendasikan kita untuk menggunakannya hanya jika benar-benar dibutuhkan. Kenapa? Karena idealnya, konfigurasi resource sepenuhnya dilakukan melalui declarative code. Tapi tenang, jika ada skenario yang memang memerlukan provisioner, gunakan saja dengan bijak. 😊

Komentar

Postingan populer dari blog ini

Day 109 : Akhir dari Perjalanan PKL: Terima Kasih untuk PT Excellent

Hari ini adalah hari terakhir saya menjalani PKL di PT Excellent. Momen ini menjadi penutup dari perjalanan yang luar biasa penuh pembelajaran, pengalaman, dan kenangan yang tak terlupakan. Saya ingin menyampaikan rasa terima kasih yang sebesar-besarnya kepada keluarga besar PT Excellent atas kesempatan, bimbingan, dan kepercayaan yang telah diberikan kepada saya selama saya melaksanakan PKL di sini. Selama PKL, saya mendapatkan banyak pengetahuan baru yang sebelumnya belum pernah saya pelajari. Dari segi teknis, saya belajar banyak tentang teknologi seperti Zimbra, bahasa pemrograman Golang, hingga DevOps hal-hal yang awalnya terasa asing, kini menjadi ilmu yang berharga dan menjadi ilmu baru bagi saya. Namun, pembelajaran saya di PT Excellent tidak hanya terbatas pada aspek teknis. Saya juga belajar tentang kedisiplinan, tanggung jawab, profesionalisme, serta bagaimana pentingnya kolaborasi dalam lingkungan kerja. Terima kasih kepada Mas Ridwan, yang selalu membimbing saya dengan sab...

Day 108 : H-2 menuju akhir PKL

Waktu rasanya berjalan begitu cepat. Hari ini sudah masuk H-2 menuju akhir masa PKL saya di PT Excellent. Ada perasaan campur aduk antara lega karena akhirnya berhasil menyelesaikan semuanya, senang karena banyak pengalaman baru yang saya dapatkan, tapi juga sedikit. PKL di PT Excellent bukan cuma soal kerjaan atau belajar teknis, tapi juga perjalanan penuh cerita dan pelajaran. Setiap hari yang saya jalani di sini selalu memberi pengalaman baru, baik dari tugas yang menantang, bimbingan dari mentor, maupun suasana kerja yang hangat. Salah satu hal yang paling membekas adalah semangat belajar dari Pak Bos. Beliau pernah bercerita tentang bagaimana sibuknya beliau tapi tetap bisa belajar bahasa baru bahkan lebih dari satu bahasa. Itu benar-benar membuka mata saya, bahwa waktu senggang yang sering terbuang sebenarnya bisa dimanfaatkan untuk hal-hal yang lebih produktif. Mas Ridwan, yang selalu menemani kami saat briefing pagi, juga memberikan banyak pelajaran berharga. Setiap pagi kami b...

Day 82 : Membuat image dengan bahasa pemrograman golang

Hari ini, saya melanjutkan perjalanan belajar Docker dengan memanfaatkan Visual Studio Code (VSCode), editor favorit saya. Fokus utama saya adalah memahami cara membuat Docker image menggunakan alur kerja yang terintegrasi dengan VSCode. Proses ini tidak hanya efisien tetapi juga menyenangkan karena VSCode memiliki ekosistem yang kaya, termasuk berbagai ekstensi pendukung yang mempermudah pekerjaan. Mengapa Menggunakan VSCode untuk Docker? VSCode menyediakan lingkungan pengembangan yang lengkap dengan berbagai fitur, seperti: Docker Extension : Mempermudah pengelolaan image, container, dan jaringan Docker langsung dari editor. Terminal Terintegrasi : Menjalankan perintah Docker langsung dari VSCode tanpa perlu beralih aplikasi. Debugging Tools : Membantu melacak masalah aplikasi yang berjalan di dalam container, terutama bagi pengembang Golang. Dengan semua keunggulan ini, VSCode menjadi alat yang sangat mendukung dalam pengembangan berbasis Docker. Langkah-langkah Membuat Docker Image...