Otomasi Infrastruktur: Bash Scripting untuk Manajemen VM Ubuntu Cloud-Init di Proxmox
Mengotomatisasi siklus hidup Virtual Machine adalah kunci efisiensi dalam pengelolaan infrastruktur. Panduan ini menyediakan script Bash lengkap untuk Proxmox VE, yang dapat secara otomatis membuat (cloning) dan menghapus VM Ubuntu 24.04 berbasis Cloud-Init, memungkinkan deployment yang cepat dan konsisten dengan parameter yang dapat disesuaikan.
Kekuatan Bash dan Cloud-Init
Dalam lingkungan hypervisor seperti Proxmox Virtual Environment (VE), kebutuhan untuk dengan cepat menyediakan (provision) dan menghapus lingkungan pengujian (testing environments) atau server produksi sementara sering muncul. Melakukan langkah-langkah ini secara manual melalui antarmuka web (GUI) Proxmox akan memakan waktu dan rentan terhadap kesalahan (human error).
Solusinya adalah mengintegrasikan dua alat kuat:
Bash Scripting: Memberikan logika otomatisasi dan eksekusi berurutan dari perintah command-line Proxmox (
qm).Cloud-Init: Memungkinkan kustomisasi VM pada boot pertama (pengaturan hostname, IP, SSH Key, dll.) tanpa interaksi pengguna.
Script yang akan kita buat ini tidak hanya akan membuat VM, tetapi juga akan memperluas disk secara otomatis, mengatur IP Statis, dan mengimpor SSH Key—semua hanya dengan menjalankan satu baris perintah.
Pilar 1: Prasyarat dan Persiapan Template Cloud-Init
Script ini mengasumsikan Anda telah melakukan langkah-langkah dasar pembuatan template yang dijelaskan dalam panduan sebelumnya.
1.1 Prasyarat Utama
Pastikan hal-hal berikut sudah tersedia di Proxmox VE Anda:
Template VM Cloud-Init (Wajib): Anda harus sudah memiliki Template VM yang sudah dikonversi (misalnya, ID:
9000) dan dibuat dari Ubuntu 24.04 Cloud Image.VM ID yang Tersedia: Rentang ID VM yang akan digunakan (misalnya,
101hingga199).Storage Name: Nama Storage tempat template dan disk baru akan disimpan (misalnya,
local-lvm).
1.2 Struktur Script Utama
Kita akan membuat script yang fleksibel, yang dapat dipanggil dengan argumen (misalnya, create atau delete).
Nama File: vm-manager.sh
#!/bin/bash
# --- VARIBEL GLOBAL ---
TEMPLATE_ID=9000
BASE_IMAGE_STORAGE="local-lvm"
NETWORK_BRIDGE="vmbr0"
BASE_IP="192.168.1.100" # IP awal untuk VM yang akan dibuat
GATEWAY_IP="192.168.1.1" # Gateway jaringan Anda
SSH_KEY_FILE="/root/.ssh/id_rsa.pub" # Pastikan file ini ada
DEFAULT_USER="ubuntu"
# --- Fungsi Bantuan UI/UX ---
log_info() {
echo -e "n
Post Terkait
Strategi Rollback & Zero-Downtime Deployment: Rilis Tanpa Bikin Situs Mati
Cepat atau lambat, sebuah rilis pasti bermasalah. Pelajari zero-downtime deployment (blue-green, canary, rolling) agar s...
Menyiapkan Pipeline CI/CD Pertama Anda: Otomatiskan Build, Tes, dan Deploy
Semua pemeriksaan sebelum rilis tak perlu dilakukan manual. Pipeline CI/CD mengotomatiskan build, tes, dan penayangan se...
Apa yang Perlu Diperiksa Sebelum Naik ke Produksi: Checklist Lengkap Go Live
Naik ke produksi seharusnya pos pemeriksaan, bukan sekadar satu klik. Checklist lengkap ini merangkum apa yang perlu dip...