Templat OS dan ISO
Lokasi di admin: Services › Virtual Machines › Template (
/vm/templates). Template Proxmox tercantum per kluster di Infrastructure › Cloud provider › Providers › (cluster) › Clusters.
Fungsi
Templat adalah citra sistem operasi yang digunakan VM baru saat pertama kali dimulai. NexCMP tidak menyimpan citra sendiri: ia membaca laporan dari CloudStack (siap, templat unggulan) atau yang Anda daftarkan untuk kluster Proxmox, lalu membiarkan Anda memilih mana yang dijual, lengkap dengan nama, ikon, dan pengguna login yang dilihat pelanggan. Halaman ini menunjukkan cara menyiapkan citra yang berfungsi optimal dengan NexCMP: login sandi, penskalaan CPU dan RAM langsung, file swap, dan disk root yang ukurannya menyesuaikan paket.
Persyaratan
| Item | Persyaratan |
|---|---|
| Pembangun templat CloudStack | Mesin Linux dengan libguestfs-tools (virt-customize, virt-sparsify, guestfish), qemu-utils, curl, dan ruang disk kosong sekitar 5 GB. Tidak memerlukan KVM maupun root. Akses internet untuk instalasi paket (atau bangun dengan --offline). |
| Lokasi builder | Fitur ini disertakan di setiap rilis dalam /opt/nexcmp/releases/<version>/share/templates/ di server panel. Anda tidak harus menjalankannya di sana: salin folder tersebut ke mesin Linux mana pun. |
| Server web | Server HTTP(S) apa pun yang dapat dijangkau oleh VM penyimpanan sekunder CloudStack untuk memublikasikan file .qcow2 yang sudah jadi. Server tidak harus dapat dijangkau dari internet. |
| CloudStack | Akun yang memiliki izin untuk mendaftarkan templat, serta ID zona Anda dan jenis OS yang cocok. Lihat CloudStack. |
| Proxmox VE | VM templat cloud-init dengan agen tamu QEMU, masing-masing satu per OS dan per node. Lihat Proxmox VE. |
| Bergantung pada | CloudStack atau Proxmox VE harus dihubungkan terlebih dahulu. |
Siapkan infrastruktur
CloudStack: membangun templat
Citra dasar yang didukung (citra vendor diunduh dan checksum-nya diverifikasi sebelum ada perubahan yang dibuat):
| Citra | --distro | Pengguna login |
|---|---|---|
| Ubuntu 22.04 | ubuntu-22.04 | ubuntu |
| Ubuntu 24.04 | ubuntu-24.04 | ubuntu |
| Debian 12 | debian-12 | debian |
| Rocky Linux 9 | rocky-9 | rocky |
Distribusi lainnya: tambahkan baris ke distros.conf (URL citra, file checksum, famili deb atau rpm).
Salin builder ke mesin pengebangun dan jalankan:
bashcp -r /opt/nexcmp/releases/<version>/share/templates ~/templates && cd ~/templates ./build-template.sh --distro ubuntu-24.04 --version v7 --work ./outTambahkan
--panel-url https://cloud.example.comuntuk menyematkan agen pemantauan boot pertama opsional yang mendaftar ke panel Anda (hanya HTTPS). Tanpa ini, tidak ada agen yang ditambahkan. Opsi lain:--base <file>untuk menggunakan citra yang Anda unduh,--offlineuntuk melewati instalasi paket.Hasilnya adalah
out/ubuntu-24.04-v7.qcow2beserta.sha256miliknya. Proses build diakhiri dengan menjalankanverify-image.sh, yang memeriksa citra jadi secara hulu-baca (read-only) dan menolak citra yang buruk (disimpan sebagai.unverified). Anda dapat menjalankannya kembali kapan saja:./verify-image.sh out/ubuntu-24.04-v7.qcow2 --no-agent.
Apa saja yang dimasukkan builder ke dalam citra:
| Item | Alasan |
|---|---|
qemu-guest-agent | CloudStack dapat meminta informasi CPU dan IP pada VM, serta melakukan quiesce VM untuk pembuatan snapshot. |
cloud-init dengan sumber data CloudStack, set_passwords pada setiap booting, login kata sandi SSH | Kata sandi yang dihasilkan diambil dari virtual router dan Reset password berfungsi. |
| Aturan udev untuk CPU dan RAM yang ditambahkan secara hot-plug | vCPU dan RAM yang ditambahkan secara hot-plug langsung aktif dengan sendirinya, sehingga live scaling dan Auto Scaling dapat berfungsi. |
| Layanan file swap | Membuat /swapfile sebesar nilai terkecil antara 50% dari RAM dan 4 GiB setelah disk diperbesar. touch /etc/cmp-swap.disabled menonaktifkannya. |
cloud-init growpart dan resizefs | Root disk yang kecil akan diperbesar ke ukuran disk paket pada boot pertama. |
| machine-id kosong, tidak ada kunci host SSH | Setiap VM mendapatkan identitasnya sendiri. |
Beri nama templat <OS> <version> <vN>
NexCMP mengaktifkan Auto Scaling untuk templat yang namanya diakhiri dengan vN atau vN.M dengan N of 6 or more (Ubuntu 24.04 v7, Rocky Linux 9 v7.1). Builder menegakkan aturan ini untuk --version. Daftarkan templat dengan nama persis seperti yang tercetak.
Publikasikan file tersebut dan daftarkan di CloudStack. Gunakan SHA-256 yang dicetak oleh builder, dan daftarkan hanya setelah file selesai ditulis sepenuhnya:
bashcmk list ostypes keyword="Ubuntu 24.04" filter=id,description cmk register template name="Ubuntu 24.04 v7" displaytext="Ubuntu 24.04 v7" \ url=https://files.example.com/ubuntu-24.04-v7.qcow2 zoneid=<zone-id> format=QCOW2 hypervisor=KVM \ ostypeid=<os-type-id> passwordenabled=true sshkeyenabled=true isdynamicallyscalable=true \ requireshvm=true isextractable=false ispublic=true isfeatured=true \ checksum="{SHA-256}<sha256 of the file>" \ details[0].guest.cpu.mode=host-passthrough details[0].rootDiskController=osdefaultpasswordenabled=truememungkinkan CloudStack menghasilkan kata sandi VM.isdynamicallyscalable=truemengizinkan live scaling.host-passthroughdiperlukan agar gambar Rocky dan Alma saat ini dapat melakukan boot;osdefaultmenjaga pengontrol disk tetap portabel.
Tunggu hingga templat mencapai status Download Complete / Ready.
Image vendor tetap mempertahankan ukuran virtualnya yang kecil (sekitar 3.5 GiB untuk Ubuntu dan Debian, 10 GiB untuk Rocky). Ingat bahwa disk paket tidak boleh lebih kecil daripada disk templat.
Proxmox VE: membuat templat
Buat templat VM cloud-init per OS pada setiap node tempat Anda melakukan deployment, dengan guest agent terpasang dan login root diaktifkan, lalu daftarkan sebagai os-key=vmid. Perintah lengkapnya ada di Proxmox VE. Builder CloudStack di atas bukan untuk Proxmox: builder tersebut mengonfigurasikan cloud-init untuk sumber data CloudStack.
ISO
Pelanggan dapat memasang ISO mereka sendiri melalui modul Images (CloudStack) atau modul Dedicated Server. Hal tersebut terpisah dari templat OS di halaman ini. Lihat Modules dan Dedicated servers.
Hubungkan di NexCMP
Buka Services › Virtual Machines › Template. Klik Sync now atau tunggu hingga 15 menit. Sinkronisasi ini akan menambahkan templat yang siap dan berstatus unggulan di CloudStack.

Klik Edit pada templat baru dan atur apa yang dilihat oleh pelanggan:
Kolom Contoh nilai Nama tampilan untuk pelanggan Ubuntu 24.04 LTSKeluarga OS ubuntu(ikon dan pengguna default)Versi 24.04Nama pengguna login ubuntu(Windows:Administrator; lainnya:root)Ikon URL image, jalur (path), atau nama Urutan 10Aktif On Hot-plug vCPU/RAM (live scale) Auto by name (v6 or later), Yes, atau No (needs a restart) 
Aktifkan templat tersebut. Templat yang tidak lagi dicantumkan oleh CloudStack akan disembunyikan secara otomatis (dan Anda akan diberi peringatan di Telegram jika dikonfigurasi); templat tidak akan pernah dihapus dari NexCMP.
Ganti templat dengan build yang lebih baru
Gunakan More › Replace with new version pada templat yang dijual. Pilih templat baru yang siap dan saat ini dinonaktifkan. Entri yang dijual kemudian akan mengarah ke build baru dan tetap mempertahankan nama, urutan, serta ikonnya; yang lama dinonaktifkan sebagai jalur kembali (untuk kembali, gunakan Replace pada entri baru). VM yang sedang berjalan tidak disentuh. Jika build baru berasal dari keluarga OS yang berbeda, centang konfirmasi terlebih dahulu.
Verifikasi
- Baris menunjukkan ready dan, untuk build bernama
vNdengan N 6 atau lebih, CPU hot-plug: supported. - Deploy satu VM uji dari templat dan periksa di dalam VM:
- Anda dapat masuk dengan kata sandi yang ditampilkan di portal;
df -h /menunjukkan ukuran disk paket;- setelah scale langsung (Change plan tanpa reboot),
nprocdanfree -mbertambah; swapon --showmencantumkan/swapfile(disk dengan ruang kosong kurang dari swap ditambah 2 GiB akan dilewati);systemctl is-active qemu-guest-agentmencetakactive.
- Jika Anda menyertakan agen di dalamnya, VM akan muncul di host yang dipantau panel satu menit setelah booting pertama. VM memerlukan IP publiknya sendiri: panel mengenalinya dari IP sumber publiknya.
Batasan dan catatan
- Builder ini khusus untuk Linux dan membangun citra Linux. Citra lain (misalnya Windows) dapat didaftarkan di CloudStack melalui cara lain; NexCMP mencantumkan apa yang dilaporkan oleh CloudStack.
- Hanya agen amd64 yang disertakan; arsitektur lain akan melewati instalasi agen.
- Citra diperiksa dengan
guestfishtetapi tidak pernah di-boot oleh builder. Selalu deploy satu VM uji sebelum menjual citra baru. - Lewati agen pada satu VM dengan
touch /etc/cmp-agent.disabledsebelum booting pertama. Hapus nanti dengansystemctl disable --now cmp-agent cmp-agent-install; rm -rf /etc/cmp-agent /usr/local/bin/cmp-agent, lalu hapus agen di konsol admin.
Pemecahan Masalah
| Gejala | Penyebab | Solusi |
|---|---|---|
virt-customize gagal mengunduh paket | Mesin build tidak memiliki jaringan keluar | Perbaiki DNS atau proksi pada mesin tersebut, atau bangun dengan --offline pada citra dasar yang sudah memiliki paket-paket tersebut. |
libguestfs: error: /usr/bin/supermin exited with error status 1 | Kernel host tidak dapat dibaca oleh pengguna saat ini (Ubuntu) | sudo chmod +r /boot/vmlinuz*, atau jalankan build sebagai root. |
| Checksum berbeda, atau citra vendor tidak lagi ada | Vendor memindahkan file "latest" mereka | Unduh sendiri citranya, periksa terhadap file checksum vendor, dan teruskan dengan --base. |
| Rocky: XFS yang lebih baru tidak dapat dimount | Kernel host terlalu lama | Bangun pada mesin dengan kernel yang baru. |
--version must be v6 or higher | Nama harus berupa vN dengan N 6 atau lebih | Gunakan --version v7. |
--panel-url must be a plain https:// URL | Agen diunduh dan dijalankan sebagai root, sehingga HTTP biasa ditolak | Gunakan URL https:// tanpa spasi, tanda kutip, atau string kueri. |
| Templat tetap not ready | CloudStack belum selesai mengunduh | Tunggu Download Complete, periksa apakah VM penyimpanan sekunder dapat menjangkau URL tersebut. |
| Baris menunjukkan no-pass | Templat didaftarkan tanpa passwordenabled=true | Daftarkan kembali dengan flag tersebut. |
| CPU hot-plug menunjukkan unsupported | Nama tidak berakhiran vN (N 6 atau lebih) | Ganti nama templat, atau tetapkan vCPU/RAM hot-plug ke Yes di Edit jika citra memiliki aturan udev. |
| "Empty template list" setelah koneksi pertama | Sinkronisasi belum berjalan | Klik Sync now (memerlukan worker yang berjalan) atau tunggu siklus 15 menit. |