Recipes & Marketplace
Cấp phát VM chuẩn hóa với các mẫu golden image, danh mục Marketplace, tích hợp cloud-init/Cloudbase-init và tạo recipe tùy chỉnh trong VergeOS.
Tổng quan
Việc cấu hình thủ công từng máy ảo từ đầu rất tốn thời gian và dễ sai sót. VergeOS các công thức giải quyết vấn đề này bằng cách cung cấp các mẫu golden image có thể tùy chỉnh, giúp chuẩn hóa việc cấp phát VM nhưng vẫn cho phép tùy chỉnh theo từng phiên bản. Kết hợp với danh mục Marketplace, các công thức cho phép bạn triển khai các VM sẵn sàng cho sản xuất chỉ trong vài phút -- từ máy chủ Ubuntu đến môi trường đánh giá Windows -- với cấu hình nhất quán mỗi lần.
Một công thức gồm ba thành phần:
VM cơ sở -- Một máy ảo đã được tổng quát hóa, đóng vai trò là golden image (mẫu)
Câu hỏi -- Các trường nhập được tổ chức theo từng phần để thu thập giá trị tùy chỉnh cho mỗi phiên bản (lõi CPU, RAM, hostname, cấu hình mạng, thông tin xác thực)
Tự động hóa -- Các thao tác cơ sở dữ liệu và script cloud-init/Cloudbase-init chạy phía sau để cấu hình VM trong lần khởi động đầu tiên
Danh mục Marketplace
Mỗi hệ thống VergeOS đều đi kèm với Marketplace -- một kho lưu trữ từ xa do VergeOS cung cấp, chứa các công thức VM dựng sẵn sẵn sàng sử dụng ngay. Marketplace tự động có sẵn khi cài đặt và các danh mục của nó được đặt thành scope=global, khiến chúng cũng có thể truy cập được cho tất cả tenant.
Truy cập Marketplace
Đi tới Máy > Máy ảo từ menu bên trái.
Nhấp Mới.
Trong Chọn loại ở bảng bên trái, chọn Marketplace (hoặc một danh mục cụ thể như "Hệ điều hành (Marketplace)" hoặc "Ứng dụng (Marketplace)").
Chọn một công thức từ danh sách và nhấp vào Tiếp theo để bắt đầu trả lời các câu hỏi.
Các công thức hệ điều hành có sẵn
Marketplace bao gồm các công thức cho nhiều hệ điều hành:
Ubuntu
Server 18.04 (Bionic), 20.04 (Focal), 22.04 (Jammy), 24.04 (Noble) -- các bản phát hành LTS
Tương thích RHEL
Rocky Linux 8 & 9, AlmaLinux 8 & 9, CentOS 7, CentOS Stream 8
Debian
Debian 10 (Buster), 11 (Bullseye), 12 (Bookworm), 13 (Trixie)
Fedora
Fedora 35, 36, 37, 38
Amazon
Amazon Linux 2 LTS
Windows
Windows Server 2019 Evaluation, 2022 Evaluation, 2025 Evaluation
Các công thức Linux sử dụng cloud-init với các cloud image dựng sẵn được tải xuống trong quá trình cấp phát. Các công thức Windows sử dụng Cloudbase-init với các ISO đánh giá và thiết lập tự động không cần giám sát. Cả hai cách đều tạo ra một VM đã được cấu hình đầy đủ, có thể khởi động mà không cần cài đặt hệ điều hành thủ công.
Sử dụng công thức Marketplace
Triển khai VM từ một công thức Marketplace tuân theo quy trình hỏi-đáp có hướng dẫn. Dưới đây là một ví dụ điển hình sử dụng công thức Ubuntu Server:
Hướng dẫn từng bước
Đi tới thành Máy > Máy ảo > Mới.
Chọn công thức (ví dụ: "Ubuntu Server 24.04 (Noble Numbat)") từ danh mục Marketplace.
Trả lời các câu hỏi được hiển thị trong từng phần:
Cài đặt phiên bản VM
YB_CPU_CORES
Số lõi
Số lõi CPU ảo
YB_RAM
RAM
Phân bổ bộ nhớ (MB)
YB_HOSTNAME
Tên máy
hostname của hệ điều hành khách
SELECT_CREATE_UEFI
Bật UEFI
Chế độ khởi động UEFI (khuyến nghị)
YB_DISABLE_CLOUDINIT
Tắt Cloud-init sau lần khởi động đầu tiên
Tùy chọn: true, false, hoặc purge
Cài đặt mạng
YB_IP_ADDR_TYPE
Loại địa chỉ IP
dhcp hoặc tĩnh
YB_NIC_ETH0_EXTERNAL_GATEWAY
Mạng
Mạng đích cho NIC chính
YB_NIC_ETH0_IP_ADDR
Địa chỉ IP
IP tĩnh (nếu đã chọn tĩnh)
YB_NIC_ETH0_CIDR
CIDR mặt nạ mạng con
ví dụ, /24
YB_NIC_ETH0_GW
Cổng mặc định
Địa chỉ IP cổng mặc định
YB_NIC_ETH0_NS
Máy chủ tên
Các máy chủ DNS phân tách bằng dấu phẩy
Cài đặt lưu trữ
YB_DRIVE_OS_SIZE
Dung lượng ổ đĩa HĐH
Kích thước đĩa tính bằng GB
SELECT_OS_TIER
Tầng ổ đĩa HĐH
Tầng lưu trữ vSAN ưu tiên
Tài khoản người dùng
YB_USER
Tên người dùng
Tên người dùng quản trị ban đầu
YB_PASSWORD
Mật khẩu
Mật khẩu quản trị ban đầu
Nhấp vào Gửi để tạo VM.
Quá trình tự động hóa công thức sẽ chạy -- tạo ổ đĩa, tải xuống cloud image, cấu hình các tệp cloud-init và đặt loại máy.
Bật nguồn VM. Cloud-init chạy trong lần khởi động đầu tiên để áp dụng cấu hình của bạn (hostname, người dùng, mạng, gói).
Câu hỏi và biến của công thức
Các câu hỏi của công thức là những khối xây dựng làm cho công thức có thể tùy chỉnh. Mỗi câu hỏi thu thập một giá trị được lưu dưới dạng biến và có thể được tham chiếu trong các script cloud-init, thao tác cơ sở dữ liệu hoặc cấu hình VM.
Các trường câu hỏi
Phần
Nhóm các câu hỏi liên quan trên biểu mẫu nhập (ví dụ: "Cài đặt phiên bản", "Mạng")
Tên
Tên biến được tham chiếu trong script (chỉ chữ và số, không có khoảng trắng)
Loại
Cách dữ liệu được thu thập; các kiểu phổ biến gồm String, Number, Password, Boolean, List, Hidden, RAM, Disk Size, Network, Cluster, Database Create/Edit/Find, Hostname, Script, Textarea, Virtual IP, Timestamp, Row, Field và Seconds
ID thứ tự
Thứ tự hiển thị trong phần
Hiển thị
Nhãn hiển thị cho người dùng trên biểu mẫu nhập
Giá trị mặc định
Câu trả lời được điền sẵn
Xác thực regex
Biểu thức chính quy để xác thực đầu vào
Văn bản giữ chỗ
Văn bản gợi ý màu xám cho biết định dạng mong đợi
Văn bản tooltip
Trợ giúp bật lên khi di chuột
Văn bản ghi chú
Văn bản trợ giúp hiển thị bên dưới trường nhập
Khi thay đổi
JavaScript để động hiển thị/ẩn các câu hỏi khác
Các câu hỏi được tạo tự động
Khi bạn tạo một công thức từ VM cơ sở, VergeOS sẽ tự động tạo các câu hỏi cho từng ổ đĩa của VM (ví dụ: YB_DRIVE_1_SIZE, YB_DRIVE_2_SERIAL, YB_DRIVE_3_NONPERSISTENT). Một số câu hỏi được tạo tự động bị vô hiệu hóa theo mặc định -- hãy bật chúng từ danh sách Câu hỏi nếu cần.
Tự động hóa cơ sở dữ liệu
Đằng sau mỗi công thức Marketplace, một tập hợp các câu hỏi kiểu cơ sở dữ liệu (Database Create, Database Edit, và Database Find) thực hiện các thao tác tự động trong quá trình cấp phát VM. Những câu hỏi này tương tác trực tiếp với API cơ sở dữ liệu của VergeOS để tạo tài nguyên, tải xuống image và cấu hình phần cứng -- mà không cần bất kỳ can thiệp thủ công nào từ người dùng.
Các thao tác cơ sở dữ liệu phổ biến
CREATE_OS_DRIVE
Tạo ổ đĩa ảo HĐH với kích thước và tầng đã chỉ định
YB_DOWNLOAD_WINDOWS_ISO
Tải xuống Windows ISO từ một URL đã chỉ định
YB_DOWNLOAD_VIRTIO
Tải xuống ISO driver VirtIO cho máy khách Windows
YB_CREATE_VIRTIO_CD_DL
Tạo một CD-ROM ảo và gắn ISO VirtIO
GET_CLUSTER_CPU
Truy vấn cụm để lấy thông tin model CPU khả dụng
CHANGE_CLUSTER_CPU
Đặt kiểu CPU của VM khớp với cụm
EDIT_MACHINE_TYPE
Điều chỉnh loại máy của VM (ví dụ: Q35) sau khi tạo
Các thao tác này sử dụng cùng một REST API mà quản trị viên và các công cụ tự động hóa có thể truy cập. Tác giả công thức có thể thêm các câu hỏi Database tùy chỉnh để tự động hóa bất kỳ thao tác nào được API của VergeOS hỗ trợ -- tạo mạng, đăng ký bản ghi DNS, đặt quy tắc tường lửa, và nhiều hơn nữa.
Tích hợp Cloud-Init (Linux)
VergeOS tích hợp với cloud-initcông cụ tiêu chuẩn ngành dùng để tùy chỉnh VM Linux trong lần khởi động đầu tiên. Các công thức tận dụng cloud-init để áp dụng hostname, tài khoản người dùng, cấu hình mạng, cài đặt gói và script tùy chỉnh -- tất cả đều được điều khiển bởi các biến câu hỏi của công thức.
Cách hoạt động
Của VM Nguồn dữ liệu Cloud-init được đặt thành Config Drive v2.
VergeOS tạo một ổ đĩa ảo chứa hai tệp:
user_data-- Các script và chỉ thị cấu hình được thực thi trong lần khởi động đầu tiênmeta_data.json-- Siêu dữ liệu của phiên bản (hostname, UUID, vùng sẵn sàng)
Các biến câu hỏi của công thức được chèn vào các tệp này bằng cú pháp mẫu.
Trong lần khởi động đầu tiên, cloud-init đọc Config Drive và áp dụng cấu hình.
Biến mẫu
Các biến của công thức được chèn vào tệp cloud-init bằng ${VARIABLE_NAME} cú pháp:
Tính năng ${$ALL_VARIABLES} sẽ mở rộng để bao gồm mọi biến câu hỏi dưới dạng một đối tượng JSON, giúp tất cả câu trả lời của công thức đều có sẵn cho các script cloud-init. ${$...} Biểu mẫu này không phải là lỗi đánh máy: bộ máy thay thế quét theo ${...} cú pháp chuẩn, và $ALL_VARIABLES là một tên biến đặc biệt (với một ký tự $dẫn đầu theo nghĩa đen) mà bộ hiển thị nhận diện và thay thế bằng toàn bộ tập biến.
Các định dạng User Data
Tính năng user_data tệp hỗ trợ nhiều định dạng script, được xác định bởi dòng đầu tiên:
Cloud-config (YAML)
#cloud-config
Cấu hình khai báo (người dùng, gói, tệp, runcmd)
Script shell
#!/bin/bash
Các lệnh shell tùy ý
PowerShell
#ps1
Script PowerShell (chủ yếu cho Cloudbase-init trên Windows)
Batch
rem cmd
Script batch Windows (Cloudbase-init)
Bộ điều phối dòng đầu tiên ở trên là hành vi tiêu chuẩn của cloud-init/Cloudbase-init, không phải là quy ước riêng của VergeOS -- VergeOS chỉ đơn giản cung cấp user_data tệp qua Config Drive v2 và để tác nhân trong máy khách tự diễn giải nó.
Ví dụ: Cloud-Config YAML
Ảnh đám mây trực tuyến
Các công thức Linux có thể tải xuống trực tiếp các cloud image dựng sẵn từ các máy nhân bản của bản phân phối. Điều này được cấu hình thông qua các câu hỏi ẩn của công thức:
OS_DL_URL(loại: Hidden) -- Tải xuống và lưu đệm image cục bộ (ví dụ,https://cloud-images.ubuntu.com/releases/noble/release/ubuntu-24.04-server-cloudimg-amd64-disk-kvm.img)OS_URL(loại: Hidden) -- Truyền image qua web mà không lưu đệm cục bộ
Các cloud image này đã được cài sẵn cloud-init, vì vậy công thức chỉ cần cung cấp user_data và meta_data.json các tệp để tùy chỉnh.
Cloudbase-Init (Windows)
Đối với VM Windows, VergeOS sử dụng Cloudbase-init -- phiên bản tương đương của cloud-init dành cho Windows. Cloudbase-init đọc cùng một nguồn dữ liệu Config Drive v2 và thực thi các script PowerShell hoặc batch trong lần khởi động đầu tiên.
Quy trình thiết lập
Cài đặt ứng dụng khách Cloudbase-init trong VM mẫu Windows.
Sysprep VM bằng các tùy chọn unattend của Cloudbase-init.
Thiết lập VM Nguồn dữ liệu Cloud-init thành Config Drive v2.
Tạo các câu hỏi của công thức cho các tùy chọn đặc thù Windows (khóa bản quyền, RDP, driver VirtIO).
Tự động hóa công thức Windows
Các công thức Windows Marketplace tự động hóa toàn bộ chuỗi cấp phát:
Tải xuống ISO đánh giá Windows thông qua một câu hỏi Database
Tải xuống ISO driver VirtIO
Tạo các ổ CD-ROM ảo và gắn cả hai ISO
Cấu hình loại máy và cài đặt UEFI
Trong lần khởi động đầu tiên, Cloudbase-init áp dụng hostname, thông tin xác thực quản trị, cài đặt RDP và cấu hình mạng
Sau khi cloud-init hoặc Cloudbase-init đã hoàn tất công việc của nó, xóa các tệp cloud-init khỏi VM -- đặc biệt nếu bất kỳ script nào có chứa mật khẩu hoặc thông tin nhạy cảm khác.
Tạo công thức tùy chỉnh
Khi các công thức Marketplace không đáp ứng nhu cầu của bạn, bạn có thể tạo công thức tùy chỉnh từ bất kỳ VM hiện có nào.
Quy trình
Xây dựng VM cơ sở -- Cài đặt hệ điều hành, ứng dụng và cấu hình mà bạn muốn làm golden image. Tổng quát hóa VM (xóa dữ liệu đặc thù của máy, cài cloud-init hoặc Cloudbase-init).
Tạo công thức -- Điều hướng đến Máy ảo > Công thức VM mới.
Nếu chưa có danh mục cục bộ nào, bạn sẽ được nhắc tạo một danh mục trước.
Cấu hình các trường của công thức:
Tên
Tên mô tả cho công thức
Mô tả
Tài liệu và hướng dẫn
Biểu tượng
Biểu tượng Font Awesome để nhận dạng trực quan
Danh mục
Vùng chứa tổ chức cho công thức
Máy ảo
VM mẫu cơ sở
Phiên bản
Bắt đầu từ 1.0.0, tự động tăng khi có thay đổi (1.0.0-1, 1.0.0-2, v.v.)
Dùng tài sản làm tên câu hỏi
Đặt tên câu hỏi drive/NIC theo số tài sản thay vì thứ tự
Phụ thuộc phiên bản
Các tính năng VergeOS cần có để công thức hoạt động
Xác định các câu hỏi -- Thêm các phần và câu hỏi để thu thập đầu vào cho từng phiên bản. Cấu hình xác thực, giá trị mặc định, tooltip và logic hiển thị/ẩn có điều kiện.
Cấu hình các tệp cloud-init -- Viết
user_datavàmeta_data.jsoncác mẫu tham chiếu đến các biến câu hỏi của bạn.Mô phỏng công thức -- Nhấp vào Mô phỏng công thức từ bảng điều khiển công thức để kiểm tra biểu mẫu nhập, xác thực các trường và xem trước các tệp đáp án được tạo.
Xuất bản -- Công thức sẽ khả dụng trong danh mục của nó để tạo các VM mới.
Chỉnh sửa và xuất bản lại
Khi bạn thay đổi một công thức, nó phải được xuất bản lại để các thay đổi có hiệu lực. Bảng điều khiển công thức hiển thị một thông báo với một Xuất bản lại liên kết. Sau khi xuất bản lại, các hệ thống từ xa và tenant sẽ được thông báo rằng có bản cập nhật.
Các phiên bản công thức
Một VM được tạo từ một công thức là một phiên bản của công thức đó cho đến khi nó bị xóa hoặc gỡ liên kết. Bạn có thể xem tất cả các phiên bản từ bảng điều khiển công thức. Không thể xóa một công thức khi nó còn các phiên bản liên kết.
Trao đổi công thức
VergeOS hỗ trợ chia sẻ công thức giữa các hệ thống và tenant thông qua kiến trúc kho lưu trữ và danh mục.
Chia sẻ với tenant
Đặt Phạm vi xuất bản thành Tenant (hoặc Toàn cục để truy cập bên ngoài).
Trong giao diện tenant, điều hướng đến Nhà cung cấp dịch vụ kho lưu trữ và nhấp Làm mới.
Nhấp đúp vào danh mục để duyệt các công thức.
Chọn các công thức và nhấp Tải xuống/Cập nhật để làm cho chúng khả dụng cục bộ.
Chia sẻ với hệ thống từ xa
Tạo một người dùng API trên hệ thống chia sẻ với quyền Liệt kê và Đọc đối với danh mục.
Trên hệ thống nhận, tạo một Kho lưu trữ từ xa trỏ đến URL của hệ thống chia sẻ với thông tin xác thực của người dùng API.
Nhấp Làm mới để lấy danh sách danh mục. Tải công thức xuống để sử dụng cục bộ.
Phạm vi xuất bản
Riêng tư
Chỉ đám mây VergeOS cục bộ
Không
Đã tắt -- không khả dụng ở bất kỳ đâu
Tenant
Đám mây cục bộ và các tenant trực tiếp của nó
Toàn cục
Đám mây cục bộ, tenant và hệ thống từ xa (có thông tin xác thực)
Thực hành tốt nhất
Bắt đầu với Marketplace
Dùng các công thức Marketplace làm điểm khởi đầu. Sao chép chúng vào một danh mục cục bộ và tùy chỉnh thay vì xây dựng từ đầu -- cách này tiết kiệm thời gian và đảm bảo bạn kế thừa các cấu hình đã được kiểm thử.
Mô phỏng trước khi xuất bản
Luôn mô phỏng một công thức trước khi cho phép người dùng sử dụng. Xác minh rằng việc xác thực trường hoạt động, logic có điều kiện hoạt động đúng, và các tệp cloud-init được tạo chứa các giá trị mong đợi.
Đánh số phiên bản cho công thức của bạn
Hãy dùng số phiên bản có ý nghĩa và cập nhật chúng khi thực hiện các thay đổi quan trọng. Các hệ thống từ xa và tenant sẽ được thông báo về các bản cập nhật, vì vậy việc đánh số phiên bản rõ ràng giúp theo dõi những gì đã thay đổi.
Dọn dẹp dữ liệu nhạy cảm
Xóa các tệp cloud-init sau lần khởi động đầu tiên, đặc biệt nếu chúng chứa mật khẩu hoặc thông tin xác thực. Hãy cân nhắc sử dụng YB_DISABLE_CLOUDINIT tùy chọn để xóa dữ liệu cloud-init sau khi cấu hình ban đầu.
Cập nhật lần cuối
Nội dung này có hữu ích không?