Template hệ điều hành và ISO
Vị trí trong trang admin: Services › Virtual Machines › Template (
/vm/templates). Template Proxmox được liệt kê theo từng cluster tại Infrastructure › Cloud provider › Providers › (cluster) › Clusters.
Chức năng
Template là image hệ điều hành dùng để khởi tạo VM mới. NexCMP không tự lưu trữ image: hệ thống đọc dữ liệu từ CloudStack (các template ready, featured) hoặc những gì bạn liệt kê cho Proxmox cluster, rồi cho phép bạn chọn template để mở bán kèm tên hiển thị cho khách, icon và user đăng nhập. Trang này hướng dẫn cách chuẩn bị các image tương thích tốt với NexCMP: đăng nhập bằng mật khẩu, co giãn CPU và RAM nóng, swap file, cùng ổ đĩa root tự động mở rộng theo gói cước.
Yêu cầu
| Hạng mục | Yêu cầu |
|---|---|
| CloudStack template builder | Một máy Linux có libguestfs-tools (virt-customize, virt-sparsify, guestfish), qemu-utils, curl và khoảng 5 GB dung lượng đĩa trống. Không cần KVM hay quyền root. Có kết nối Internet để cài package (hoặc build với --offline). |
| Vị trí của builder | Công cụ này đi kèm trong mỗi bản phát hành tại /opt/nexcmp/releases/<version>/share/templates/ trên server panel. Bạn không nhất thiết phải chạy trên đó: hãy sao chép thư mục sang bất kỳ máy Linux nào. |
| Web server | Bất kỳ HTTP(S) server nào mà secondary storage VM của CloudStack có thể truy cập, dùng để phát hành file .qcow2 hoàn thiện. Không bắt buộc phải truy cập được từ Internet. |
| CloudStack | Một tài khoản có quyền đăng ký template, cùng ID của zone và OS type tương ứng. Xem CloudStack. |
| Proxmox VE | VM template cloud-init có QEMU guest agent, một cho mỗi hệ điều hành và mỗi node. Xem Proxmox VE. |
| Phụ thuộc vào | Đã kết nối CloudStack hoặc Proxmox VE trước đó. |
Chuẩn bị hạ tầng
CloudStack: tạo template
Các base image được hỗ trợ (image từ nhà cung cấp được tải xuống và kiểm tra checksum trước khi thay đổi bất kỳ nội dung nào):
| Image | --distro | Login user |
|---|---|---|
| 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 |
Thêm bản phân phối khác: thêm một dòng vào distros.conf (URL image, file checksum, họ deb hoặc rpm).
Sao chép builder sang máy build và chạy lệnh:
bashcp -r /opt/nexcmp/releases/<version>/share/templates ~/templates && cd ~/templates ./build-template.sh --distro ubuntu-24.04 --version v7 --work ./outThêm
--panel-url https://cloud.example.comđể tích hợp agent giám sát tùy chọn lúc khởi động lần đầu tự động đăng ký với panel của bạn (chỉ qua HTTPS). Nếu không có tham số này, sẽ không có agent nào được thêm. Các tùy chọn khác:--base <file>để dùng image bạn đã tải về,--offlineđể bỏ qua việc cài đặt gói.Kết quả là
out/ubuntu-24.04-v7.qcow2và.sha256tương ứng. Quá trình build kết thúc bằng việc chạyverify-image.sh, lệnh này sẽ kiểm tra image hoàn thiện ở chế độ chỉ đọc và từ chối image lỗi (được giữ lại dưới dạng.unverified). Bạn có thể chạy lại bất cứ lúc nào:./verify-image.sh out/ubuntu-24.04-v7.qcow2 --no-agent.
Những gì builder đưa vào image:
| Hạng mục | Lý do |
|---|---|
qemu-guest-agent | CloudStack có thể truy vấn VM về CPU và IP, đồng thời quiesce hệ thống để tạo Snapshots. |
cloud-init với data source CloudStack, set_passwords mỗi lần khởi động, đăng nhập SSH bằng mật khẩu | Mật khẩu được tạo sẽ được lấy từ virtual router và tính năng Reset password hoạt động bình thường. |
| Quy tắc udev cho CPU và RAM gắn nóng | vCPU và RAM gắn nóng tự động online, giúp tính năng live scaling và Auto Scaling hoạt động trơn tru. |
| Dịch vụ file swap | Tạo /swapfile với dung lượng nhỏ hơn giữa 50% RAM và 4 GiB sau khi đĩa đã mở rộng. touch /etc/cmp-swap.disabled dùng để tắt tính năng này. |
cloud-init growpart và resizefs | Đĩa root nhỏ sẽ tự động mở rộng theo dung lượng đĩa của gói dịch vụ trong lần khởi động đầu tiên. |
| machine-id rỗng, không có SSH host key | Mỗi VM nhận được định danh riêng biệt. |
Đặt tên template là <OS> <version> <vN>
NexCMP bật Auto Scaling cho các template có tên kết thúc bằng vN hoặc vN.M với N từ 6 trở lên (Ubuntu 24.04 v7, Rocky Linux 9 v7.1). Builder bắt buộc điều này đối với --version. Hãy đăng ký template với chính xác tên được in ra.
Xuất bản file và đăng ký vào CloudStack. Sử dụng mã SHA-256 được in ra sau khi build, và chỉ đăng ký sau khi file đã được ghi hoàn tất:
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=truecho phép CloudStack tạo mật khẩu VM.isdynamicallyscalable=truecho phép live scaling.host-passthroughlà bắt buộc để các image Rocky và Alma hiện tại có thể khởi động;osdefaultgiúp disk controller tương thích linh hoạt.
Đợi template đạt trạng thái Download Complete / Ready.
Image từ nhà cung cấp giữ kích thước ảo nhỏ gọn (khoảng 3.5 GiB đối với Ubuntu và Debian, 10 GiB đối với Rocky). Lưu ý rằng dung lượng đĩa của gói dịch vụ không thể nhỏ hơn đĩa của template.
Proxmox VE: tạo template
Hãy build một template VM cloud-init cho từng hệ điều hành trên mọi node bạn triển khai, đã cài sẵn guest agent và bật đăng nhập root, sau đó đăng ký dưới dạng os-key=vmid. Danh sách lệnh đầy đủ có tại Proxmox VE. Builder CloudStack ở trên không dành cho Proxmox: nó cấu hình cloud-init cho data source CloudStack.
ISO
Khách hàng có thể gắn ISO riêng của họ thông qua module Images (CloudStack) hoặc module Dedicated Server. Các ISO này độc lập với những OS template trên trang này. Xem Modules và Dedicated servers.
Kết nối trong NexCMP
Mở Services › Virtual Machines › Template. Nhấp vào Sync now hoặc đợi tối đa 15 phút. Quá trình đồng bộ sẽ thêm các template đã sẵn sàng và được đặt featured trong CloudStack.

Nhấp vào Edit trên một template mới và cấu hình những gì khách hàng nhìn thấy:
Trường Giá trị ví dụ Tên hiển thị cho khách hàng Ubuntu 24.04 LTSDòng hệ điều hành ubuntu(icon và người dùng mặc định)Phiên bản 24.04Tên người dùng đăng nhập ubuntu(Windows:Administrator; khác:root)Icon URL image, đường dẫn hoặc tên Thứ tự 10Kích hoạt On Cắm nóng vCPU/RAM (mở rộng trực tiếp) Auto by name (v6 or later), Yes hoặc No (needs a restart) 
Bật template. Template không còn được CloudStack liệt kê sẽ tự động bị ẩn (và bạn sẽ nhận được thông báo qua Telegram nếu đã cấu hình); template này không bao giờ bị xóa khỏi NexCMP.
Thay thế template bằng bản build mới hơn
Dùng More › Replace with new version trên template đang bán. Chọn template mới ở trạng thái ready và đang bị tắt. Mục đang bán sau đó sẽ trỏ đến bản build mới, đồng thời giữ nguyên tên, thứ tự và icon; bản cũ sẽ bị tắt để làm đường lùi (để quay lại, dùng Replace trên mục mới). Các VM đang chạy không bị ảnh hưởng. Nếu bản build mới thuộc OS family khác, hãy tích chọn xác nhận trước.
Kiểm tra
- Hàng hiển thị ready và đối với các bản build có tên
vNvới N từ 6 trở lên, hiển thị CPU hot-plug: supported. - Triển khai một VM thử nghiệm từ template và kiểm tra bên trong VM:
- bạn có thể đăng nhập bằng mật khẩu hiển thị trên portal;
df -h /hiển thị dung lượng đĩa của gói;- sau khi live scale (Change plan không cần reboot),
nprocvàfree -mtăng dung lượng; swapon --showliệt kê/swapfile(các đĩa có dung lượng trống ít hơn swap cộng 2 GiB sẽ bỏ qua);systemctl is-active qemu-guest-agentin raactive.
- Nếu bạn đã tích hợp sẵn agent vào image, VM sẽ xuất hiện trong danh sách host được giám sát của bảng điều khiển sau khi khởi động lần đầu một phút. VM cần có IP public riêng: bảng điều khiển nhận diện VM qua IP nguồn public của nó.
Giới hạn và lưu ý
- Công cụ build chỉ chạy trên Linux và tạo các image Linux. Các image khác (ví dụ: Windows) có thể được đăng ký trong CloudStack bằng phương thức khác; NexCMP sẽ liệt kê những gì CloudStack báo cáo.
- Chỉ agent bản amd64 được cung cấp sẵn; các kiến trúc khác sẽ bỏ qua việc cài đặt agent.
- Image được kiểm tra bằng
guestfishnhưng không bao giờ được công cụ build khởi động. Luôn triển khai một VM thử nghiệm trước khi mở bán image mới. - Bỏ qua agent trên một VM bằng
touch /etc/cmp-agent.disabledtrước lần khởi động đầu tiên. Gỡ bỏ sau đó bằngsystemctl disable --now cmp-agent cmp-agent-install; rm -rf /etc/cmp-agent /usr/local/bin/cmp-agent, rồi xóa agent trong console quản trị.
Xử lý sự cố
| Hiện tượng | Nguyên nhân | Cách khắc phục |
|---|---|---|
virt-customize không tải được các gói | Máy build không có kết nối mạng ra ngoài | Sửa DNS hoặc proxy trên máy đó, hoặc build với --offline trên base image đã có sẵn các gói. |
libguestfs: error: /usr/bin/supermin exited with error status 1 | User hiện tại không có quyền đọc kernel của host (Ubuntu) | sudo chmod +r /boot/vmlinuz*, hoặc chạy bản build với quyền root. |
| Checksum khác biệt hoặc image của nhà cung cấp không còn tồn tại | Nhà cung cấp thay đổi vị trí các tệp "latest" của họ | Tự tải image về, đối chiếu với tệp checksum của nhà cung cấp và truyền vào bằng --base. |
| Rocky: không thể mount định dạng XFS mới hơn | Kernel của host quá cũ | Build trên máy có kernel mới hơn. |
--version must be v6 or higher | Tên phải là vN với N từ 6 trở lên | Dùng --version v7. |
--panel-url must be a plain https:// URL | Agent được tải xuống và chạy dưới quyền root, do đó giao thức HTTP thường bị từ chối | Dùng URL https:// không chứa khoảng trắng, dấu ngoặc kép hoặc query string. |
| Template vẫn ở trạng thái not ready | CloudStack chưa tải xong | Chờ trạng thái Download Complete, kiểm tra xem secondary storage VM có thể kết nối tới URL không. |
| Hàng hiển thị no-pass | Template được đăng ký mà không có passwordenabled=true | Đăng ký lại với flag đó. |
| CPU hot-plug hiển thị unsupported | Tên không kết thúc bằng vN (N từ 6 trở lên) | Đổi tên template, hoặc đặt vCPU/RAM hot-plug thành Yes trong Edit nếu image có udev rule. |
| "Empty template list" sau lần kết nối đầu tiên | Tiến trình đồng bộ chưa chạy | Nhấp Sync now (cần worker đang chạy) hoặc đợi chu kỳ 15 phút. |