Deploy Droplet DigitalOcean dengan Terraform

Deploy Droplet DigitalOcean dengan Terraform

Terraform adalah sebuah tool infrastructure as code (IaC) untuk provisioning yang dikembangkan oleh HashiCorp. Terraform memungkinkan untuk membangun, mengubah, dan membuat versi infrastruktur dengan aman dan efisien.

IaC sendiri adalah proses mengelola dan menyiapkan infrastruktur dengan menggunakan kode (text files, configuration file, command line) tanpa melalui GUI atau Web UI. Seperti mengelola compute, storage, dan networking.

Penerapan IaC dapat secara otomatis mengelola infrastruktur. IaC akan terasa manfaatnya ketika infrastruktur yang dikelola dalam skala besar dan harus segera dieksekusi dalam waktu yang singkat.

Terraform mendukung berbagai cloud provider seperti AWS, Azure, Google Cloud Platform, Alibaba Cloud, dan termasuk DigitalOcean.

Cara Kerja Terraform

Terraform mengelola resources pada platform cloud melalui Application Programming Interfaces (API).

Alur Kerja Terraform
Alur Kerja Terraform

Alur kerja Terraform terdiri dari 3 tahap, yaitu:

  1. Write: Menuliskan resources yang ingin dikelola. Misalnya, membuat konfigurasi untuk deploy aplikasi pada virtual machine di jaringan Virtual Private Cloud (VPC) dengan security groups (firewall) dan load balancer.
  2. Plan: Membuat rencana eksekusi yang menjelaskan infrastruktur yang akan dibuat, diperbarui, atau dihancurkan berdasarkan konfigurasi.
  3. Apply: Mengeksekusi konfigurasi dalam urutan yang benar dan tetap memperhitungkan dependensi yang ada. Misalnya, memperbarui properti VPC dan mengubah jumlah virtual machine di VPC tersebut, Terraform akaan membuat ulang VPC sebelum memperbesar jumlah virtual machine.

Cara Kerja Terraform
Cara Kerja Terraform

0. Deskripsi Tutorial

Tutorial ini menjelaskan bagaimana tahapan dalam membuat droplet DigitalOcean secara otomatis dengan menggunakan Terraform.

Yang perlu disiapkan, yaitu:

  • DigitalOcean Personal Access Token
  • SSH Key
  • Terraform

1. Personal Access Token

Membuat Personal Access Token yang menjadi kunci bagi Terraform untuk mengakses API DigitalOcean.

  1. API -> Tokens/Keys
  2. Klik Generate New Token
  3. Berikan nama key di Token name
  4. Pilih masa aktif key di Expiration, misal 90 days
  5. Klik Generate Token
  6. Simpan token yang ditampilkan, karena hanya sekali saja ditampilkan.

Personal Access Token
Personal Access Token

2. SSH Key

Komputer yang digunakan pada tutorial ini memakai sistem operasi Linux.

Membuat SSH key di Linux.

Jawab dengan menuliskan lokasi penyimpanan file key dan nama filenya.

Memasukkan Public SSH Key di akun DigitalOcean.

  1. Settings -> Security
  2. Klik Add SSH Key
  3. Masukkan key di SSH key content
  4. Berikana nama key di Name
  5. Klik Add SSH Key

Add SSH Key
Add SSH Key

3. Install Terraform

Terraform mendukung sistem operasi macOS, Windows, Linux, FreeBSD, OpenBSD, dan Solaris. Pada tutorial ini menggunakan sistem operasi Linux Ubuntu.

Install Terraform di Ubuntu.

4. Konfigurasi Terraform untuk DigitalOcean

Membuat environment variable DO_PAT untuk menyimpan DigitalOcean Personal Access Token.

Membuat folder penyimpanan konfigurasi Terraform untuk DigitalOcean.

Membuat file provider.tf.

Masukkan konfigurasi Terraform dengan provider DigitalOcean.

Inisialisasi Terraform.

Perintah di atas membaca konfigurasi provider dan memasang plugin yang dibutuhkan.

5. Membuat Droplet

Membuat file konfigurasi droplet, misal www-1.

Masukkan konfigurasinya.

  • Membuat droplet dengan nama www-1
  • Memakai image Ubuntu 22.04
  • Lokasi data center di Singapore 1
  • Memakai SSH Key nama-ssh-key
  • Mengakses SSH
  • Menjalankan command update dan install nginx

Block connection dan provisioner tidak wajib ada kalau hanya ingin membuat droplet saja tanpa menjalankan command lain setelah droplet selesai dibuat.

Menjalankan terraform plan untuk mengetahui seperti apa droplet yang dihasilkan dari konfigurasi di atas.

Hasil perintah di atas.

Menjalankan terraform apply untuk mengeksekusi pembuatan droplet.

Hasil perintah di atas. Jawab “yes” untuk melanjutkan pembuatan droplet.

Jika berhasil, baris terakhir tampil pesan Apply complete! Resources: 1 added, 0 changed, 0 destroyed..

Menampilkan status atau informasi dari environment saat ini.

Hasilnya.

Jika droplet atau resources diubah tidak menggunakan droplet, tfstate tidak akan sama lagi atau tidak diperbarui. Untuk itu perlu menjalankan terraform refresh agar tfstate diperbarui.

6. Menghapus Droplet

Menghapus droplet atau resources yang telah dibuat.

Jawab yes untuk melanjutkan penghapusan resources.

Jika berhasil ditampilkan pesan Destroy complete! Resources: 1 destroyed..

7. Membuat Banyak Droplet

Membuat banyak droplet dalam satu konfigurasi.

Yang perlu ditambahkan yaitu:

  • count, jumlah droplet yang mau dibuat
  • name, mengubah penulisan name dari droplet dengan menambahkan nomor index

Selamat mencoba 🙂

Leave a Reply

Your email address will not be published.