Cara Automasi Deployment VM IDCloudHost dengan Cloud-Init

Pendahuluan

Dalam pengelolaan infrastruktur cloud, proses deployment server dan aplikasi sering kali membutuhkan konfigurasi manual yang memakan waktu dan berpotensi menimbulkan kesalahan. Untuk meningkatkan efisiensi dan konsistensi konfigurasi, diperlukan mekanisme automasi pada tahap inisialisasi Virtual Machine (VM). Panduan ini membahas automasi deployment WordPress Stack berbasis Docker di VM IDCloudHost menggunakan fitur Cloud-Init (User Data).

Proses automasi ini memanfaatkan dua file script utama, yaitu setup-vm.sh sebagai script inisialisasi VM dan stack-app.sh sebagai script deployment aplikasi. Dengan pendekatan ini, instalasi Docker serta deployment container MySQL, WordPress, dan Nginx dapat berjalan otomatis saat VM pertama kali boot, sehingga WordPress siap digunakan tanpa konfigurasi manual tambahan.

panduan Automasi Deployment VM IDCloudHost

Langkah Automasi Deployment VM IDCloudHost dengan Cloud-Init

Berikut adalah langkah-langkah untuk melakukan automasi deployment WordPress Stack berbasis Docker menggunakan fitur User Data (Cloud-Init) di Console IDCloudHost.

1. Upload Script Aplikasi ke GitHub/Gist

  1. Pastikan file stack-app.sh sudah tersedia di repository lokal Anda
  2. Upload file stack-app.sh ke: GitHub Repository (public), atau GitHub Gist (lebih cepat dan praktis)
  3. Setelah file terupload, klik tombol “Raw” untuk melihat konten file dalam format raw
  4. Salin URL dari browser address bar: Format URL GitHub: Download stack-app.sh dan Format URL Gist:Download stack-app.sh

Catatan: Pastikan URL yang Anda salin adalah URL Raw, bukan URL halaman web biasa.

2. Edit Script Installer

  1. Buka file setup-vm.sh menggunakan text editor favorit Anda
  2. Cari variable URL_SCRIPT_APLIKASI di bagian atas file
  3. Ganti nilai variabel tersebut dengan URL Raw yang Anda salin di Langkah 1 URL_SCRIPT_APLIKASI=”https://raw.githubusercontent.com/username/repo/main/stack-app.sh”
  4. (Opsional) Jika diperlukan, sesuaikan juga variabel untuk Docker Registry: (REGISTRY_URL, REG_USER, REG_PASS)
  5. Simpan perubahan file

3. Encode Script setup-vm.sh ke Base64

panduan automasi

Agar script dapat dimasukkan ke kolom User Data di Dashboard IDCloudHost, script setup-vm.sh harus di-encode menjadi format Base64.

Opsi A: Menggunakan Website Online

  1. Buka website base64encode.org atau tool Base64 encoder lainnya
  2. Copy seluruh isi file setup-vm.sh yang sudah diedit
  3. Paste ke kolom input pada website
  4. Klik tombol “Encode” atau “Convert”
  5. Salin string Base64 yang dihasilkan

Opsi B: Menggunakan Terminal/Command Line

  • Linux/Mac:
cat setup-vm.sh | base64
  • Windows PowerShell:
[Convert]::ToBase64String
([System.Text.Encoding]::UTF8.GetBytes( [System.IO.File]::ReadAllText("setup-vm.sh")))
  • Windows Command Prompt:
certutil -encode setup-vm.sh encoded.txt
type encoded.txt

Penting: Pastikan string Base64 yang dihasilkan tidak mengandung line breaks atau spasi tambahan. Jika ada, hapus semua line breaks sebelum digunakan.

4. Deploy di Dashboard IDCloudHost

1. Pastikan Anda sudah memiliki akun pada Layanan Console IDCloudHost. Jika belum silahkan daftar dan login di https://console.idcloudhost.com lalu jangan lupa deposit dan gunakan kode referal atau diskon untuk free kreditnya.

     

panduan Automasi Deployment VM IDCloudHost

2. Pilih menu Virtual Machine dari Dashboard Console Anda

panduan Automasi Deployment VM IDCloudHost

3. Selanjutnya, Isi konfigurasi dasar VM (OS, spesifikasi, dll) sesuai kebutuhan

4. Proses tersebut akan membuka halaman Create New Resource, silakan pilih jenis OS dan Versinya, misalnya Ubuntu 24.04 LT. S

panduan Automasi Deployment VM IDCloudHost

5. Berikutnya centang (Check) opsi: “Add custom configuration for the virtual machine”

6. Setelah itu, tentukan lokasi server, spesifikasi, Public IP dan network.

Automasi Deployment VM IDCloudHost

7. Jangan lupa juga mengisi, username dan password yang akan digunakan.

Automasi Deployment VM IDCloudHost

8. Pada bagian Initialization script, Centang (Check) opsi: “Add custom configuration for the virtual machine”

Automasi Deployment VM IDCloudHost

9. Masukkan konfigurasi berikut ke kolom teks yang muncul:

#cloud-config
write_files: 
- path: /root/setup-vm.sh 
permissions: '0755' 
encoding: b64 
content: | 
PASTE_STRING_BASE64_DISINI
runcmd: 
- /root/setup-vm.sh

Ganti PASTE_STRING_BASE64_ANDA_DISINI dengan string Base64 yang Anda dapatkan di Langkah 3.

10. Pada langkah berikutnya, Anda mengisi Resource Name sesuai kebutuhan, lalu meninjau ulang estimasi biaya. Jika anggaran masih memungkinkan untuk naik, Anda dapat meningkatkan kembali spesifikasi VM. Setelah itu, pilih metode billing yang Anda gunakan, lalu tekan tombol Create.

11. Setelah VM dengan Cloud-Init berhasil dibuat, Kita akan mendapatkan IP Publik seperti gambar berikut.

12. Tunggu proses kurang lebih 5 menit.

13. Selamat Automasi Deployment VM IDCloudHost dengan Cloud-Init telah berhasil. Karena use case ini menggunakan aplikasi WordPress, Anda mengakses IP publik VM melalui browser dan langsung melihat halaman WordPress yang siap Anda konfigurasi.

 

panduan automasi

5. Monitoring Proses Deployment

Untuk memantau proses instalasi dan deployment, lakukan SSH ke VM dan jalankan perintah berikut:

1. Melihat log Cloud-Init

  • Melihat log lengkap Cloud-Init
tail -f /var/log/cloud-init-output.log
  • Atau melihat log dengan jumlah baris tertentu
tail -n 100 /var/log/cloud-init-output.log

2. Melihat Status Container

  • Real-time monitoring (update setiap 2 detik)
watch docker ps
  • Atau sekali saja untuk melihat status
docker ps -a
  • Melihat container yang sedang running
docker ps
  • Melihat semua container termasuk yang stopped
docker ps -a

3. Melihat Log Container Spesifik

  • MySQL logs
docker logs db-mysql
  • WordPress logs
docker logs app-wordpress
  • Nginx logs
docker logs web-nginx
  • Follow logs secara real-time
docker logs -f app-wordpress

Pastikan container MySQL, WordPress, dan Nginx berstatus running.

4. Cek Apakah Website Sudah Ready

  • Test dari dalam VM
curl http://localhost
  • Atau dengan IP address
curl http://$(hostname -I | awk '{print $1}')
  • Test dengan verbose untuk melihat response
curl -v http://localhost

5. Melihat Resource Usage

  • Melihat penggunaan resource container
docker stats
  • Melihat disk usage
docker system df

6. Troubleshooting

Jika container tidak running, cek dengan:

  • Cek status semua container
docker ps -a
  • Cek log error
docker logs <container-name>
  • Restart container yang stopped
docker start <container-name>
  • Cek network
docker network lsdocker network inspect wp-network

Catatan: Panduan ini menggunakan setup WordPress sebagai contoh use case untuk memudahkan pemahaman proses automasi deployment VM menggunakan Cloud-Init. Meskipun tersedia opsi WordPress one-click, pendekatan ini tidak terbatas hanya untuk WordPress. Konsep yang dibahas dapat diterapkan untuk berbagai kebutuhan, seperti deployment aplikasi internal, produk custom, atau stack aplikasi lainnya secara otomatis saat VM pertama kali dijalankan.

Penutup

Dengan menerapkan Cloud-Init melalui fitur User Data di Console IDCloudHost, Anda dapat mengotomatisasi deployment WordPress Stack berbasis Docker tanpa perlu melakukan konfigurasi manual setelah VM berjalan. Dengan demikian, proses inisialisasi VM menjadi lebih cepat, konsisten, dan minim risiko kesalahan konfigurasi.

Pendekatan ini mempercepat proses provisioning server, menjaga konsistensi konfigurasi, dan memudahkan Anda dalam menyiapkan lingkungan WordPress. Selain itu, konsep automasi ini dapat Anda kembangkan lebih lanjut sesuai kebutuhan, baik untuk pengujian, pengembangan, maupun implementasi pada skala yang lebih besar.

Referensi Panduan:

Contoh konfigurasi Cloud-Init diadaptasi dari repository resmi IDCloudHost: https://github.com/idcloudhost/cloud-init-wordpress-vm