Pengenalan
Terraform adalah sebuah tool otomatisasi untuk membangun, mengubah dan melakukan versioning terhadap infrastruktur yang kita bangun. Terraform dapat mengelola banyak layanan infrastruktur yang ada saat ini dan bahkan populer, seperti DigitalOcean, Linode, VMware vSphere, Docker, k8s, dll.
Terraform adalah salah satu produk dari HashiCorp yang sangat membantu untuk melakukan provisioning secara mudah berdasarkan file konfigurasi yang kita buat. Untuk format file konfigurasi nya sendiri bisa kita tentukan berdasarkan provider IaaS yang akan kita gunakan. Info lanjut: https://www.terraform.io/intro/examples/index.html
Contoh mudahnya adalah. Misalkan kita sering membeli sebuah VPS di pada penyedia layanan cloud seperti DigitalOcean, Linode, AWS, Azure, dll. Maka yang kita lakukan adalah masuk ke webiste penyedia -> Login -> Create VM/droplet, dsb -> Pilih paket yang ingin dibeli (misal RAM 2GB), dll.
It’s oke kalau kita hanya ingin buat 1 VM/container pada server tersebut. Permasalahannya bagaimana jika kita ingin melakukan deployment dengan multi node atau bahkan multi-cloud deployment?. Ini adalah solusi, dengan terafform kita dapat mengeliminasi proses tersebut dengan melakukan automasi melalui terminal.
Instalasi Terraform
Berikut adalah instalasi terraform pada MacOS atau sistem operasi linux:
- Unduh terlebih dahulu terraform nya pada tautan berikut : https://www.terraform.io/downloads.html
- Silakan unduh sesuai sistem operasi yang digunakan (dalam hal ini Linux / MacOS) saat ini versi yang digunakan adalah 0.11.13
- Setelah di unduh ekstrak file terraform dan pindahkan pada folder /usr/local/bin
sudo unzip terraform_0.11.13_darwin_amd64.zip
sudo mv terraform /usr/local/bin/
Selesai, mudah kan?
Contoh Penggunaan
Untuk penggunaannya sendiri, terraform melakukan konfigurasi berdasarkan file .tf yang berada pada suatu folder.
Contoh saya akan melakukan pembuatan VM pada penyedia layanan Linode:
mkdir linode-test
cd linode-test
Pada folder tersebut buat sebuah file dengan format .tf (terraform) untuk melakukan provisioning:
provider "linode" {
token = "TOKEN_LINODE_KAMU"
}
resource "linode_instance" "setup-vps" {
image = "linode/ubuntu16.04lts"
label = "terraform-test"
group = "terraform"
region = "ap-south"
type = "g6-standard-1"
authorized_keys = "PUBLIK_KEY_SSH_KAMU"
root_pass = "ABC123!"
}
Simpan file tersebut dan keluar. Jalankan perintah berikut untuk melakukan otomatisasi:
terraform init
terraform plan
terraform apply
Selesai, kamu bisa mengeliminasi proses yang klak klik yang melelahkan.
Untuk informasi seputar variable yang ada pada provide linode silakan mengunjungi tautan berikut. Dan untuk melihat provider yang didukung oleh terraform silakan mengunjungi tautan berikut.
Keren Gan
Gak Hoax