
Pengenalan Terraform
By Admin
at 2025-02-21 15:38:17,
last updated: 2025-02-21 15:38:17
Pada kesempatan kali ini kita coba berkenalan dengan Terraform. Sebelum kita mencoba mengenal Teraform kita mundur sedikit untuk mengenal tentang apa itu istilah IaC (Infrastruktur as Code)
Apa itu “Infrastruktur as Code“?
Secara sederhana IaC atau Infrastruktur as Code adalah pengelolaan infrastruktur TI menggunakan file konfigurasi. Tujuan dari infrastruktur sebagai kode adalah untuk secara otomatis mengelola, memantau, menyediakan sumber daya tanpa konfigurasi manual. Infrastruktur sebagai kode mirip dengan skrip pemrograman. Tetapi ia menggunakan bahasa tingkat tinggi atau deskriptif untuk membuat kode. Dengan pengembang IaC dan tim operasi secara otomatis mengelola tumpukan teknologi untuk aplikasi melalui perangkat lunak, membantu mengonfigurasi dan menerapkan komponen ini dengan cepat dan konsisten
Apa itu Terraform?
HashiCorp Terraform adalah infrastruktur sumber terbuka paling populer sebagai alat perangkat lunak kode yang memungkinkan Anda membuat, mengubah, dan meningkatkan infrastruktur dengan aman dan dapat diprediksi. Terraform diluncurkan pada tahun 2014, ditulis dalam bahasa Go
Terraform dapat membangun, mengubah, dan membuat infrastruktur dengan aman dan efisien. Terraform dapat denngan mudah memngelola infrastruktur komponen tingkat rendah seperti instans komputasi, penyimpanan, dan jaringan, serta komponen tingkat tinggi seperti entri DNS, fitur SaaS, dll. Terraform adalah perangkat lunak open-source yang di buat oleh HashiCorp untuk membangun “Infrastructure as Code“. Dengan terraform pengguna dengan mudah menentukan dan menyediakan infrastruktur pusat data menggunakan bahasa konfigurasi deklaratif yang dikenal sebagai HashiCorp Configuration Language (HCL), atau opsional JSON.
File konfigurasi menjelaskan kepada Terraform komponen yang diperlukan untuk menjalankan satu aplikasi atau seluruh pusat data Anda. Terraform menghasilkan rencana eksekusi yang menjelaskan apa yang akan dilakukan untuk mencapai keadaan yang diinginkan, dan kemudian mengeksekusinya untuk membangun infrastruktur yang dijelaskan. Saat konfigurasi berubah, Terraform dapat menentukan apa yang berubah dan membuat rencana eksekusi tambahan yang dapat diterapkan.
Terraform sendiri bisa dijalankan di hampir semua OS, mulai dari macOS, Windows, hingga sejumlah distro Linux yang telah didukung.Terraform mendukung banyak cloud service besar, seperti IaaS (contoh AWS, GCP, Microsoft Azure, OpenStack), PaaS (e.g. Heroku), or SaaS services (e.g. Atlas, DNSimple, CloudFlare).
Sumber : https://learn.hashicorp.com/
Untuk menerapkan infrastruktur dengan Terraform :
Scope – Identifikasi infrastruktur untuk proyek Anda.
Author – Tulis konfigurasi untuk infrastruktur Anda.
Initialize – Instal plugin yang dibutuhkan Terraform untuk mengelola infrastruktur.
Plan – Pratinjau perubahan yang akan dibuat Terraform agar sesuai dengan konfigurasi Anda.
Apply – Buat perubahan yang direncanakan.
Beberapa Element Dasar Syntax Teraform
Tujuan utama dari bahasa Terraform adalah mendeklarasikan sumber daya, yang mewakili objek infrastruktur. Semua fitur bahasa lainnya hanya ada untuk membuat definisi sumber daya lebih fleksibel dan nyaman. Konfigurasi
Terraform adalah dokumen lengkap dalam bahasa Terraform yang memberi tahu Terraform cara mengelola kumpulan infrastruktur tertentu. Sebuah konfigurasi dapat terdiri dari beberapa file dan direktori.
resource "aws_vpc" "main" {
cidr_block = var.base_cidr_block
}
<BLOCK TYPE> "<BLOCK LABEL>" "<BLOCK LABEL>" {
# Block body
<IDENTIFIER> = <EXPRESSION> # Argument
}
Blocks adalah wadah untuk konten lain dan biasanya mewakili konfigurasi beberapa jenis objek, seperti resource. Blocks memiliki block-type, dapat memiliki nol atau lebih block-label, dan memiliki isi yang berisi sejumlah argumen dan blok lainya. Sebagian besar fitur Terraform dikendalikan oleh blok tingkat atas dalam file konfigurasi.
Arguments memberikan keterangan pada sebuah baris code
Expressions mewakili value, baik secara harfiah atau dengan referensi dan menggabungkan nilai-nilai lain.
Bahasa Terraform bersifat deklaratif, menggambarkan tujuan yang dimaksudkan daripada langkah-langkah untuk mencapai tujuan itu. Urutan blok dan file yang mereka kelola umumnya tidak signifikan Terraform hanya mempertimbangkan hubungan implisit dan eksplisit antara sumber daya saat menentukan urutan operasi.
Beberapa Software IaC Lainnya
- Ansible
Ansible adalah penyediaan perangkat lunak sumber terbuka, manajemen konfigurasi, dan alat penerapan aplikasi yang memungkinkan infrastruktur sebagai kode. Ini berjalan pada banyak sistem mirip Unix, dan dapat mengonfigurasi sistem mirip Unix serta Microsoft Windows. Diluncurkan pada 2012, ditulis dalam Python, PowerShell, Shell & Ruby.
- AWS CloudFormation
AWS CloudFormation memungkinkan Anda mengelola infrastruktur lengkap atau sumber daya AWS dalam file teks, atau template. Kumpulan sumber daya AWS disebut tumpukan. Sumber daya AWS dapat dibuat atau diperbarui dengan menggunakan tumpukan.
- Chef
Chef adalah alat manajemen konfigurasi sumber terbuka yang menggunakan Ruby untuk mengembangkan blok bangunan penting seperti resep dan buku masak. Ini adalah alat otomatisasi yang mengubah infrastruktur menjadi kode.
- Wayang
Wayang adalah perangkat lunak manajemen konfigurasi sumber terbuka dan alat penyebaran. Ini paling sering digunakan di Linux dan Windows untuk menarik string pada beberapa server aplikasi sekaligus.
Referensi :
https://www.hashicorp.com/
https://www.terraform.io/