0Pricing
DevOps Bootcamp · Pelajaran

Provisioner local-exec dan remote-exec

Terapkan provisioner `local-exec` dan `remote-exec` untuk menjalankan perintah masing-masing pada mesin yang menjalankan Terraform atau pada resource yang dibuat.

Provisioner local-exec dan remote-exec adalah pelajaran DevOps Bootcamp gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar DevOps Bootcamp, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus DevOps Bootcamp mencakup 4 pelajaran total.

Mengenal Provisioner Terraform

Bagaimana jika Anda perlu menjalankan skrip atau perintah setelah Terraform membuat sebuah sumber daya? Di sinilah provisioner berperan!

Provisioner memungkinkan Anda menjalankan tindakan pada mesin lokal atau sumber daya jarak jauh sebagai bagian dari siklus hidupnya. Provisioner menjembatani kesenjangan antara pembuatan infrastruktur dan penyiapan perangkat lunak awal.

Anggaplah provisioner sebagai pengait yang memungkinkan Anda menyesuaikan sumber daya tepat setelah dibuat.

`local-exec`: Jalankan Secara Lokal

Provisioner local-exec menjalankan perintah pada mesin tempat Terraform dijalankan.

Provisioner ini berguna untuk tugas seperti:

  • Membuat file konfigurasi secara lokal.
  • Memicu skrip atau alat lokal.
  • Melakukan operasi pembersihan setelah sumber daya dihancurkan.

Provisioner ini cocok untuk tindakan yang tidak perlu dilakukan pada sumber daya cloud itu sendiri.

Contoh Dasar `local-exec`

Mari kita lihat local-exec membuat file sederhana pada mesin lokal Anda setelah sumber daya null dibuat.

null_resource adalah pengganti yang tidak membuat apa pun di cloud, tetapi berguna untuk memicu provisioner.

resource "null_resource" "local_file_creator" {
  provisioner "local-exec" {
    command = "echo 'Local file created by Terraform!' > local_output.txt"
  }

  triggers = {
    always_run = timestamp()
  }
}

Kapan Menggunakan `local-exec`

local-exec sangat berguna untuk:

  • Notifikasi setelah penerapan: Mengirim email atau pesan Slack.
  • Pembuatan file lokal: Membuat file inventaris untuk Ansible atau alat lainnya.
  • Pemeriksaan sebelum penerapan: Menjalankan skrip validasi lokal.
  • Memicu CI/CD: Memulai pipeline setelah perubahan infrastruktur.

Ingat, provisioner ini beroperasi dari lokasi tempat Anda menjalankan terraform apply.

`remote-exec`: Jalankan pada Sumber Daya

Berbeda dengan local-exec, provisioner remote-exec menjalankan perintah pada sumber daya jarak jauh itu sendiri.

Provisioner ini penting untuk tugas penyiapan awal pada server yang baru dibuat, seperti:

  • Menginstal paket perangkat lunak (misalnya, server web atau basis data).
  • Mengonfigurasi pengaturan sistem operasi.
  • Menerapkan kode aplikasi.

Provisioner ini memerlukan konektivitas jaringan (seperti SSH untuk Linux atau WinRM untuk Windows) ke sumber daya target.

Menyambungkan untuk `remote-exec`

Agar remote-exec dapat berfungsi, Terraform perlu terhubung ke sumber daya Anda.

Jenis koneksi yang umum meliputi:

  • SSH: Untuk instans Linux, yang memerlukan kunci privat.
  • WinRM: Untuk instans Windows, yang memerlukan kredensial.

Biasanya, Anda mengonfigurasi detail koneksi di dalam blok provisioner atau mewarisinya dari sumber daya.

`remote-exec` pada EC2

Berikut cara menggunakan remote-exec untuk menginstal Apache pada instans AWS EC2 baru.

Catatan: Ini memerlukan instans EC2 yang telah disediakan dan dapat diakses melalui SSH. Untuk menyederhanakan contoh, kita mengasumsikan pasangan kunci dan grup keamanan yang sudah ada.

resource "aws_instance" "web_server" {
  ami           = "ami-0abcdef1234567890" # Replace with valid AMI ID
  instance_type = "t2.micro"
  key_name      = "my-ssh-key" # Replace with your SSH key name
  vpc_security_group_ids = ["sg-0123456789abcdef0"] # Replace with your SG ID

  provisioner "remote-exec" {
    inline = [
      "sudo yum update -y",
      "sudo yum install -y httpd",
      "sudo systemctl start httpd",
      "sudo systemctl enable httpd"
    ]
    connection {
      type        = "ssh"
      user        = "ec2-user"
      private_key = file("~/.ssh/my-ssh-key.pem")
      host        = self.public_ip
    }
  }
}

Kapan Menggunakan `remote-exec`

remote-exec ideal untuk:

  • Menyiapkan server: Menginstal server web, basis data, atau Docker.
  • Penerapan aplikasi: Menyalin kode aplikasi dan mengonfigurasinya.
  • Pengelolaan konfigurasi: Menjalankan playbook Ansible atau resep Chef secara langsung.
  • Validasi setelah pembuatan: Memverifikasi bahwa layanan berjalan pada instans baru.

Provisioner ini merupakan pilihan utama Anda untuk menyiapkan status awal server.

Penyediaan saat Penghancuran

Penyediaan juga dapat dijalankan saat suatu sumber daya sedang dihancurkan. Hal ini berguna untuk tugas pembersihan.

Anda dapat menentukan when = destroy di dalam blok penyediaan. Misalnya, untuk menghapus pendaftaran suatu instans dari penyeimbang beban sebelum instans tersebut dihentikan.

Perilaku on_failure juga dapat dikonfigurasi untuk menentukan hal yang terjadi jika perintah penyediaan gagal. Secara bawaan, proses akan menghasilkan kesalahan.

Kuis Penyediaan

Penyediaan mana yang akan Anda gunakan untuk memasang server web (seperti Nginx) pada instans mesin virtual yang baru dibuat?

Penyediaan: Lokal vs. Jarak Jauh

Kita telah mempelajari penyediaan Terraform, yaitu alat yang andal untuk menjalankan perintah selama siklus hidup sumber daya.

  • local-exec menjalankan perintah pada mesin tempat Terraform dijalankan, sehingga berguna untuk skrip lokal atau notifikasi.
  • remote-exec menjalankan perintah langsung pada sumber daya yang disediakan, sehingga cocok untuk menyiapkan server dengan perangkat lunak atau konfigurasi.

Penyediaan membantu menjembatani kesenjangan antara penerapan infrastruktur dan penyiapan aplikasi awal. Selanjutnya, kita akan membahas teknik lanjutan untuk mengelola status!

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Provisioner local-exec dan remote-exec” gratis?

Ya — teks lengkap “Provisioner local-exec dan remote-exec” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus DevOps Bootcamp, upgrade ke CoddyKit PRO. Kursus DevOps Bootcamp mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Provisioner local-exec dan remote-exec”?

Terapkan provisioner `local-exec` dan `remote-exec` untuk menjalankan perintah masing-masing pada mesin yang menjalankan Terraform atau pada resource yang dibuat. Kamu berlatih DevOps Bootcamp dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai DevOps Bootcamp?

Tidak diperlukan pengalaman sebelumnya. DevOps Bootcamp di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Provisioner local-exec dan remote-exec” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran DevOps Bootcamp ini?

Ya. Setiap pelajaran DevOps Bootcamp menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Membuat Kueri Data dengan Sumber Data
  2. Provisioner local-exec dan remote-exec
  3. Resource Null dan Pemicu
  4. Menggunakan Data Eksternal dan Templat
← Kembali ke DevOps Bootcamp