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 35 : jalan-jalan bersama excellent

 Hari ini terasa sangat istimewa, dan jauh berbeda dari hari-hari biasanya selama PKL di PT Excellent. Ini adalah pengalaman pertama saya diajak jalan-jalan oleh perusahaan tempat saya magang, dalam rangka merayakan ulang tahun PT Excellent sekaligus melakukan sesi brainstorming tim.  Pagi itu, saya memulai hari dengan penuh semangat. Saya berangkat ke kantor menggunakan Gojek, menikmati perjalanan sambil membayangkan serunya hari yang akan dilalui. Setibanya di kantor, saya langsung bergabung dengan tim dan mulai memeriksa perlengkapan yang sudah disiapkan sebelumnya. Tugas saya adalah memastikan semua barang yang diperlukan tidak ada yang tertinggal, mulai dari alat-alat untuk acara hingga barang-barang pribadi tim. Saya sangat teliti kali ini, karena tidak ingin ada kesalahan di hari spesial ini. Setelah semuanya siap, sebelum berangkat, kami sempatkan untuk mengambil foto bersama seluruh tim. Rasanya hangat sekali, seperti menjadi bagian dari keluarga besar PT Excellent. P...

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