Skip to content

Provisioning Aplikasi Pada Virtual Machine

Haffif edited this page Sep 6, 2023 · 1 revision

Kita dapat dengan mudah melakukan instalasi dan konfigurasi aplikasi yang dibutuhkan di komputer virtual dengan menggunakan metode yang disebut sebagai provisioning. Dalam Vagrant, provisioning dapat dilakukan dengan mudah melalui pembuatan skrip menggunakan bahasa bash. Berikut ini adalah langkah-langkah yang dapat diikuti untuk melakukan provisioning:

  1. Menggunakan File Bootstrap:
    • Buat bash script dengan nama bootsrap.sh pada folder yang sama dengan vagrant file.
    • Untuk menginstall apache tuliskan baris berikut pada file bootsrap.sh.
      #!/usr/bin/env bash
      apt-get update
      apt-get install -y apache2
      
    • Pada file Vagrantfile diatas end terakhir, tambahkan baris
      config.vm.provision :shell, path: "bootstrap.sh".
      Sehingga menjadi seperti berikut:
      config.vm.provision "shell", path: "bootstrap.sh"
      end
      
    • Simpan file Vagrantfile kemudian nyalakan virtualisasi.
      vagrant up
    • Jika virtualisasi sudah dibuat dan sedang menyala maka jalankan fungsi reload dengan menambahkan flag --provision untuk memaksa vagrant merestart virtualisasi dan menjalankan script provisioning ketika mesin virtual sedang aktif.
      vagrant reload --provision
      atau tanpa merestart vagrant:
      vagrant provision
    • Cek apakah provisioning berhasil dengan masuk kedalam virtualisasi menggunakan ssh.
      vagrant ssh
    • Cek apakah apache telah berhasil terinstall
      service apache2 status
  2. atau dengan Menambahkan command pada Vagrantfile
  • Uncomment baris:
    config.vm.provision "shell", inline: <<-SHELL
    apt-get update
    apt-get install -y apache2
    SHELL
    

Proses provisioning dapat juga menggunakan configuration management seperti ansible, chef, atau puppet. Proses provisioning otomatis menjalankan menggunakan superuser. Jika ingin mematikan superuser dapat menambahkan opsi: privileged:false

Contoh: config.vm.provision "shell", path: "bootstrap.sh", privileged:false

Clone this wiki locally